Compartilhar via


UIElement.Opacity Propriedade

Definição

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

double

Um valor entre 0 e 1,0 que declara o fator de opacidade, com 1,0 que significa opacidade total e 0 significa transparente. O valor padrão é 1.0.

Exemplos

Este exemplo usa um Storyboard e DoubleAnimation para direcionar opacidade. Isso anima a Opacidade 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>
' 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

Comentários

Quando Opacidade é definida 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 de Opacidade efetivo para renderização é 0.25. Os valores de opacidade 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. Os valores de opacidade definidos como menores que 0 são tratados como 0 quando o valor é usado. Na lógica de fatoração, definir uma Opacidade como 2 para cancelar os efeitos de ser contido por um objeto com opacidade 0,5 não funciona; o valor 2 é tratado como 1,0 mesmo antes da fatoração de objeto aninhado ser calculada.

Opacidade é 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, porque você não deseja que esse retângulo apareça em um estado padrão não focalizado. 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. Para obter mais informações sobre esse uso de Opacidade, consulte Animações com storyboard para estados visuais.

Opacidade e teste de clique

Um valor Opacity de 0 não exclui um objeto do teste de clique. 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 abaixo. Por padrão, os filhos de um desenho do Canvas são desenhados uns sobre os outros no mesmo sistema de coordenadas absolutas. Verifique se o valor ZIndex do Rectangle é maior que o ZIndex do 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 clique (combina PointerRoutedEventArgs.GetCurrentPoint e VisualTreeHelper.FindElementsInHostCoordinates) ao evento PointerPressed do Rectangle.

Como alternativa, para excluir um objeto do teste de clique, você deve definir IsHitTestVisible como false, em vez de usar Opacidade.

Aplica-se a

Confira também