UIElement.Opacity Propriété

Définition

Obtient ou définit le degré d’opacité de l’objet.

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" .../>

Valeur de propriété

Double

double

Valeur comprise entre 0 et 1.0 qui déclare le facteur d’opacité, 1.0 signifiant opacité totale et 0 signifiant transparent. La valeur par défaut est 1,0.

Exemples

Cet exemple utilise un Storyboard et DoubleAnimation pour cibler l’opacité. Cela anime l’opacité pour créer une animation de fondu décoratif spécifique à l’application sur une durée d’une seconde.

  <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

Remarques

Lorsque l’opacité est définie sur les objets imbriqués, l’opacité effective pour le rendu est le produit de tous les facteurs d’opacité applicables. Par exemple, si un objet qui a Opacity=0.5 est contenu dans un canvas qui est également Opacity=0.5, la valeur d’opacité effective pour le rendu est 0.25. Les valeurs d’opacité supérieures à 1.0 sont traitées comme 1.0 lorsque la valeur est utilisée, bien que l’obtention de la valeur de la propriété vous donne toujours la valeur d’origine supérieure à un. Les valeurs d’opacité définies comme inférieures à 0 sont traitées comme 0 lorsque la valeur est utilisée. Dans la logique de factoring, la définition d’une opacité sur 2 pour annuler les effets d’être contenu par un objet avec 0,5 opacité ne fonctionne pas ; la valeur 2 est traitée comme 1.0 avant même que la factoring d’objets imbriqués ne soit calculée.

L’opacité est une propriété qui est parfois animée dans des storyboards à l’état visuel, sans durée. Par exemple, le rectangle de focus pour les états visuels « FocusStates » est défini avec Opacity="0" dans le modèle de contrôle d’origine, car vous ne souhaitez pas que ce rectangle apparaisse dans un état non ciblé par défaut. Toutefois, les états visuels définissent un état « Focus » de durée zéro qui définit Opacity sur 1 lorsque le contrôle utilisant ces modèles et états a détecté qu’il est centré sur le clavier. Pour plus d’informations sur cette utilisation de l’opacité, consultez Animations de storyboard pour les états visuels.

Opacité et tests d’accès

Une valeur d’opacité 0 n’exclut pas un objet du test d’accès. Ce comportement peut être utile pour créer des superpositions de style imagemap qui sont dessinées sur le reste de l’interface utilisateur. Par exemple, vous pouvez utiliser un canevas qui a deux enfants : un rectangle qui a une hauteur, une largeur et une opacité de 0, et la racine de disposition du reste de l’interface utilisateur qui doit dessiner en dessous. Par défaut, les enfants d’un canvas dessinent les uns sur les autres dans le même système de coordonnées absolues. Assurez-vous que la valeur ZIndex du Rectangle est supérieure à la valeur ZIndex de l’autre élément (ou déclarez le Rectangle après l’autre élément dans l’élément XAML afin d’obtenir le même résultat.) Reliez votre logique de test d’accès (combine PointerRoutedEventArgs.GetCurrentPoint et VisualTreeHelper.FindElementsInHostCoordinates) à l’événement PointerPressed pour le Rectangle.

Pour exclure un objet du test d’accès, vous devez également définir IsHitTestVisible sur false, plutôt que d’utiliser Opacity.

S’applique à

Voir aussi