UIElement.Opacity Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece el grado de opacidad del objeto.
public:
property double Opacity { double get(); void set(double value); };
double Opacity();
void Opacity(double value);
public double Opacity { get; set; }
var double = uIElement.opacity;
uIElement.opacity = double;
Public Property Opacity As Double
<uiElement Opacity="double" .../>
Valor de propiedad
double
Valor entre 0 y 1,0 que declara el factor de opacidad, con 1,0 que significa opacidad completa y 0 que significa transparente. El valor predeterminado es 1,0.
Ejemplos
En este ejemplo se usa storyboard y DoubleAnimation para tener como destino Opacity
. Esto anima Opacity
el objeto para crear una animación de atenuación decorativa específica de la aplicación durante un segundo.
<UserControl x:Class="animation_ovw_intro.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300">
<StackPanel>
<StackPanel.Resources>
<!-- Animates the rectangle's opacity. -->
<Storyboard x:Name="myStoryboard">
<DoubleAnimation
Storyboard.TargetName="MyAnimatedRectangle"
Storyboard.TargetProperty="Opacity"
From="1.0" To="0.0" Duration="0:0:1"
AutoReverse="True"
RepeatBehavior="Forever"/>
</Storyboard>
</StackPanel.Resources>
<TextBlock Margin="10">Click on the rectangle to start the animation.</TextBlock>
<Rectangle PointerPressed="Item_Clicked"
x:Name="MyAnimatedRectangle"
Width="100" Height="100" Fill="Blue" />
</StackPanel>
</UserControl>
Comentarios
Cuando Opacity
se establece en objetos anidados, la opacidad efectiva para la representación es el producto de todos los factores de opacidad aplicables. Por ejemplo, si un objeto que tiene Opacity=0.5
está incluido en un canvas que también Opacity=0.5
es , el valor efectivo Opacity
para la representación es 0.25
.
Opacity
los valores mayores que 1,0 se tratan como 1,0 cuando se usa el valor, aunque la obtención del valor de propiedad seguirá dando el valor de mayor que uno original.
Opacity
los valores establecidos como inferiores a 0 se tratan como 0 cuando se usa el valor. En la lógica de factorización, establecer un valor en Opacity
2 para cancelar los efectos de estar contenidos en un objeto con 0,5 Opacity
no funciona; el valor 2 se trata como 1,0 incluso antes de que se calcule el factoring de objetos anidados.
Opacity
es una propiedad que a veces se anima en guiones gráficos de estado visual, con una duración cero. Por ejemplo, el rectángulo de foco para los estados visuales "FocusStates" se establece con Opacity="0"
en la plantilla de control original, ya que no desea que este rectángulo aparezca en estados no centrados predeterminados. Pero los estados visuales definen un estado "Centrado" de duración cero que establece la opacidad en 1 cuando el control que usa estas plantillas y estados ha detectado que está centrado en el teclado.
Opacidad y pruebas de posicionamiento
Un Opacity
valor de 0 no excluye un objeto de las pruebas de posicionamiento. Este comportamiento puede ser útil para crear superposiciones de estilo imagemap que se dibujan sobre el resto de la interfaz de usuario. Por ejemplo, puede usar un canvas con dos elementos secundarios: un rectángulo que tiene un alto, un ancho y una opacidad de 0, y la raíz de diseño del resto de la interfaz de usuario que se debe dibujar debajo. De forma predeterminada, los elementos secundarios de un Canvas
dibujo entre sí en el mismo sistema de coordenadas absoluto. Asegúrese de que el valor ZIndex de Rectangle
es mayor que el del ZIndex
otro elemento (o declare el Rectangle
después del otro elemento en el orden del elemento XAML para obtener el mismo resultado). Conecte la lógica de pruebas de posicionamiento (combina Microsoft.UI.Xaml.Input.PointerRoutedEventArgs.GetCurrentPoint y VisualTreeHelper.FindElementsInHostCoordinates al evento PointerPressed para .Rectangle
Como alternativa, para excluir un objeto de las pruebas de posicionamiento, debe establecer IsHitTestVisiblefalse
en , en lugar de usar Opacity
.