UIElement.Opacity Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define o grau de opacidade do 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 da propriedade
double
Um valor entre 0 e 1,0 que declara o fator opacidade, com 1,0 significando opacidade total e 0 significando transparente. O valor padrão é 1.0.
Exemplos
Este exemplo usa um Storyboard e DoubleAnimation para direcionar Opacity
. Isso anima o Opacity
para criar uma animação de fade-in decorativa específica do aplicativo durante uma duração de um 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>
Comentários
Quando Opacity
é definido em objetos aninhados, a opacidade efetiva para renderização é o produto de todos os fatores de opacidade aplicáveis. Por exemplo, se um objeto que tem Opacity=0.5
está contido em um Canvas que também Opacity=0.5
é , o valor efetivo Opacity
para renderização é 0.25
.
Opacity
valores maiores que 1,0 são tratados como 1,0 quando o valor é usado, embora a obtenção do valor da propriedade ainda lhe dê o valor original maior que um.
Opacity
os valores definidos como inferiores a 0 são tratados como 0 quando o valor é usado. Na lógica de fatoração, definir um Opacity
como 2 para cancelar os efeitos de ser contido por um objeto com 0,5 Opacity
não funciona; o valor 2 é tratado como 1,0 mesmo antes da fatoração aninhada-objeto ser calculada.
Opacity
é uma propriedade que às vezes é animada em storyboards de estado visual, com duração zero. Por exemplo, o retângulo de foco para estados visuais "FocusStates" é definido com Opacity="0"
no modelo de controle original, pois você não deseja que esse retângulo apareça em estados padrão não focados. Mas os estados visuais definem um estado "Focalizado" de duração zero que define Opacidade como 1 quando o controle que usa esses modelos e estados detectou que ele está focado no teclado.
Opacidade e teste de clique
Um Opacity
valor 0 não exclui um objeto do teste de ocorrência. Esse comportamento pode ser útil para criar sobreposições no estilo imagemap desenhadas sobre o restante da interface do usuário. Por exemplo, você pode usar uma Tela que tem dois filhos: um Retângulo que tem uma Altura, uma Largura e uma Opacidade de 0 e a raiz de layout do restante da interface do usuário que deve desenhar por baixo. Por padrão, os filhos de um Canvas
desenho um sobre o outro no mesmo sistema de coordenadas absolutas. Verifique se o valor ZIndex do Rectangle
é maior que o do ZIndex
outro elemento (ou declare o Rectangle
após o outro elemento na ordem do elemento XAML para obter o mesmo resultado.) Conecte sua lógica de teste de ocorrência (combina Microsoft.UI.Xaml.Input.PointerRoutedEventArgs.GetCurrentPoint e VisualTreeHelper.FindElementsInHostCoordinates ao evento PointerPressed para o Rectangle
.
Como alternativa, para excluir um objeto do teste de ocorrência, você deve definir IsHitTestVisible como false
, em vez de usar Opacity
.