UIElement.Opacity Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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.5
ist, ist 0.25
der 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.