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 significado transparente. El valor predeterminado es 1,0.
Ejemplos
En este ejemplo se usa storyboard y DoubleAnimation para establecer como destino la opacidad. Esto anima la opacidad para crear una animación decorativa específica de la aplicación durante un segundo de duración.
<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>
' When the user clicks the Rectangle, the animation
' begins.
Private Sub Pointer_Clicked(ByVal sender As Object, ByVal e As PointerRoutedEventArgs)
myStoryboard.Begin()
End Sub
Comentarios
Cuando la opacidad 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á contenido en un canvas que también Opacity=0.5
es , el valor de opacidad efectivo para la representación es 0.25
. Los valores de opacidad mayores que 1,0 se tratan como 1,0 cuando se usa el valor, aunque la obtención del valor de la propiedad todavía le proporcionará el valor mayor que uno original. Los valores de opacidad establecidos como menores que 0 se tratan como 0 cuando se usa el valor. En la lógica de factorización, establecer una opacidad en 2 para cancelar los efectos de estar contenido por un objeto con opacidad 0,5 no funciona; el valor 2 se trata como 1.0 incluso antes de calcular el factoring de objetos anidados.
Opacidad 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 opacidad en 1 cuando el control que usa estas plantillas y estados ha detectado que está centrado en el teclado. Para obtener más información sobre este uso de opacidad, consulta Animaciones con guion gráfico para estados visuales.
Opacidad y pruebas de posicionamiento
Un valor de opacidad de 0 no excluye un objeto de las pruebas de posicionamiento. Este comportamiento puede ser útil para crear superposiciones de estilo de mapa de imágenes que se dibujan sobre el resto de la interfaz de usuario. Por ejemplo, puede usar un canvas que tenga dos elementos secundarios: un rectángulo que tenga 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 lienzo se dibujan entre sí en el mismo sistema de coordenadas absoluta. Asegúrese de que el valor ZIndex del Rectángulo sea mayor que el ZIndex del otro elemento (o declare el rectángulo después del otro elemento en el elemento XAML para obtener el mismo resultado). Conecte la lógica de prueba de posicionamiento (combina PointerRoutedEventArgs.GetCurrentPoint y VisualTreeHelper.FindElementsInHostCoordinates) al evento PointerPressed del rectángulo.
Como alternativa, para excluir un objeto de las pruebas de posicionamiento, debe establecer IsHitTestVisible en false, en lugar de usar opacidad.