Teilen über


UIElement.Opacity Eigenschaft

Definition

Ruft den Grad der Deckkraft des Objekts ab oder legt diese fest.

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

Eigenschaftswert

Double

double

Ein Wert zwischen 0 und 1,0, der den Deckkraftfaktor deklariert, wobei 1,0 für volle Deckkraft und 0 bedeutungstransparent ist. Der Standardwert ist 1,0.

Beispiele

In diesem Beispiel werden ein Storyboard und DoubleAnimation als Ziel für die Deckkraft verwendet. Dadurch wird die Deckkraft animiert, um eine app-spezifische dekorative Einblendanimation für eine Sekunde zu erstellen.

  <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

Hinweise

Wenn die Deckkraft für geschachtelte Objekte festgelegt wird, ist die effektive Deckkraft für das Rendern das Produkt aller anwendbaren Deckkraftfaktoren. Wenn beispielsweise ein Objekt, das Opacity=0.5 in einer Canvas enthalten ist, die ebenfalls Opacity=0.5ist, ist 0.25der effektive Deckkraftwert für das Rendern . Deckkraftwerte größer als 1,0 werden als 1,0 behandelt, wenn der Wert verwendet wird. Beim Abrufen des Eigenschaftswerts erhalten Sie jedoch weiterhin den ursprünglichen Wert größer als 1. Deckkraftwerte, die auf kleiner als 0 festgelegt sind, werden als 0 behandelt, wenn der Wert verwendet wird. In der Factoringlogik funktioniert das Festlegen einer Deckkraft auf 2 nicht, um die Auswirkungen eines Objekts mit 0,5 Deckkraft aufzuheben. Der Wert 2 wird als 1,0 behandelt, noch bevor das Factoring für geschachtelte Objekte berechnet wird.

Deckkraft ist eine Eigenschaft, die manchmal in Storyboards für visuellen Zustand mit null Dauer animiert wird. Beispielsweise wird das Fokusrechteck für die visuellen Zustände "FocusStates" in der ursprünglichen Steuerelementvorlage mit Opacity="0" festgelegt, da dieses Rechteck nicht in einem nicht fokussierten Standardzustand angezeigt werden soll. Die visuellen Zustände definieren jedoch einen "Fokussierten"-Zustand mit null Dauer, der die Deckkraft auf 1 festlegt, wenn das Steuerelement mithilfe dieser Vorlagen und Zustände erkannt hat, dass es auf die Tastatur fokussiert ist. Weitere Informationen zu dieser Verwendung von Deckkraft finden Sie unter Storyboardanimationen für visuelle Zustände.

Deckkraft und Treffertests

Ein Deckkraftwert von 0 schließt ein Objekt nicht vom Treffertest aus. Dieses Verhalten kann nützlich sein, um Überlagerungen im Imagemap-Stil zu erstellen, die auf der restlichen Benutzeroberfläche gezeichnet werden. Sie können beispielsweise einen Canvas-Wert mit zwei untergeordneten Elementen verwenden: ein Rechteck mit einer Höhe, eine Breite und eine Deckkraft von 0 sowie den Layoutstamm der restlichen Benutzeroberfläche, die darunter zeichnen soll. Standardmäßig zeichnen untergeordnete Elemente eines Canvas-Zeichens übereinander im gleichen absoluten Koordinatensystem. Stellen Sie sicher, dass der ZIndex-Wert des Rectangle höher als der ZIndex des anderen Elements ist (oder deklarieren Sie das Rectangle nach dem anderen Element im XAML-Element, um das gleiche Ergebnis zu erhalten.) Verknüpfen Sie Ihre Treffertestlogik (kombiniert PointerRoutedEventArgs.GetCurrentPoint und VisualTreeHelper.FindElementsInHostCoordinates) mit dem PointerPressed-Ereignis für das Rechteck.

Alternativ sollten Sie IsHitTestVisible auf false festlegen, um ein Objekt vom Treffertest auszuschließen, anstatt Opacity zu verwenden.

Gilt für:

Weitere Informationen