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 Opacityverwendet. Dadurch wird animiert, Opacity eine appspezifische dekorative Einblendanimation über 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>

Hinweise

Wenn Opacity 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 Opacity Wert für das Rendern . Opacity Werte größer als 1,0 werden als 1,0 behandelt, wenn der Wert verwendet wird, obwohl sie beim Abrufen des Eigenschaftswerts immer noch den ursprünglichen Größer-1-Wert erhalten. Opacity Werte, die als kleiner als 0 festgelegt sind, werden als 0 behandelt, wenn der Wert verwendet wird. In der Factoringlogik funktioniert das Festlegen von auf Opacity 2 nicht, um die Auswirkungen des Enthaltenen in einem Objekt mit 0,5 Opacity aufzuheben. Der Wert 2 wird als 1,0 behandelt, noch bevor das Factoring des geschachtelten Objekts berechnet wird.

Opacity ist eine Eigenschaft, die in Storyboards für visuellen Zustand manchmal animiert wird, mit 00 Dauer. 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.

Deckkraft und Treffertests

Ein Opacity Wert 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 sind untergeordnete Elemente einer Canvas Zeichnung übereinander im gleichen absoluten Koordinatensystem vorhanden. Stellen Sie sicher, dass der ZIndex-Wert des Rectangle höher als der wert des anderen Elements ZIndex 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 Microsoft.UI.Xaml.Input.PointerRoutedEventArgs.GetCurrentPoint und VisualTreeHelper.FindElementsInHostCoordinates mit dem PointerPressed-Ereignis für Rectangle.

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

Gilt für:

Weitere Informationen