Erweitern Minimieren

UIElement.Opacity Property

Ruft die Durchlässigkeit des Objekts ab oder legt diese fest.

Syntax


public double Opacity { get; set; }


<uiElement Opacity="double" .../>

Eigenschaftswert

Typ: System.Double [.NET] | float64 [C++]

Ein Wert zwischen 0 und 1,0, der den Durchlässigkeitsfaktor festlegt, wobei 1,0 vollständige Undurchlässigkeit und 0 Transparenz angibt. Der Standardwert ist 1.0.

Hinweise

Wenn Opacity für geschachtelte Objekte festgelegt ist, dann ist die effektive Deckkraft für das Rendern das Ergebnis aller anwendbaren Deckkraftfaktoren. Wenn beispielsweise ein Objekt mit Opacity=0.5 in einer Canvas-Klasse enthalten ist, die auch Opacity=0.5 ist, lautet der effektive Opacity-Wert für das Rendern 0.25. Opazitätswerte über 1,0 werden bei Verwendung des Werts als Wert 1,0 behandelt, obwohl beim Abrufen des Eigenschaftswerts der ursprüngliche Wert über 1 angezeigt wird. Opacity-Werte, die auf unter 0 festgelegt sind, werden als 0 behandelt, wenn der Wert verwendet wird. Es ist in der Faktorzerlegungslogik nicht möglich, Opacity auf 2 festzulegen, um die Auswirkungen auszugleichen, von einem Objekt mit 0,5 Opacity umgeben zu sein. Der Wert 2 wird als 1,0 behandelt, bevor die Faktorzerlegung für das geschachtelte Objekt berechnet wird.

Opacity ist eine Eigenschaft, die manchmal in Storyboards in visuellem Zustand animiert wird, mit NULL Dauer. Beispielsweise wird das Fokusrechteck für visuelle "FocusStates"-Zustände mit Opacity="0" in der ursprünglichen Steuerelementvorlage festgelegt, da dieses Rechteck nicht in einem standardmäßig nicht-fokussierten Zustand angezeigt werden soll. Die visuellen Zustände definieren jedoch einen "Focused"-Zustand ohne Dauer (Nullwert), der Opacity auf 1 festlegt, wenn das Steuerelement, das diese Vorlagen und Zustände verwendet, erkannt hat, dass es den Tastaturfokus hat. Weitere Informationen zur Verwendung von Opacity finden Sie unter Storyboard-Animationen für visuelle Zustände.

Deckkraft und Treffertest

Durch den Opacity-Wert 0 (null) wird ein Objekt nicht aus Treffertests ausgeschlossen. Dieses Verhalten kann für das Erstellen von Imagemap-Overlays hilfreich sein, die für den Rest der UI gezeichnet werden. Sie können beispielsweise ein Canvas verwenden, das zwei Unterelemente hat: ein Rectangle mit einer Height, einer Width und einer Opacity von 0 und dem Layoutstamm der restlichen Benutzeroberfläche, der darunter dargestellt werden soll. Standardmäßig werden untergeordnete Elemente eines Canvas übereinander im gleichen absoluten Koordinatensystem gezeichnet. Überprüfen Sie, ob der ZIndex-Wert von Rectangle höher ist als die ZIndex-Werte des anderen Elements (oder deklarieren Sie das Rectangle nach dem anderen Element in der XAML-Elementreihenfolge, um dasselbe Ergebnis zu erhalten). Verknüpfen Sie die Treffertestslogik (kombiniert PointerRoutedEventArgs.GetCurrentPoint und VisualTreeHelper.FindElementsInHostCoordinates) mit dem PointerPressed-Ereignis für das Rectangle.

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

Beispiele

In diesem Beispiel werden Storyboard und DoubleAnimation zum Festlegen der Opacity-Eigenschaft verwendet. Dadurch wird die Opacity animiert, um für den Zeitraum von einer Sekunde eine App-spezifische, dekorative Einblendanimation 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>


Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadaten

Windows.winmd

Siehe auch

UIElement
Treffertest und Eingabeereignisse

 

 

Anzeigen:
© 2014 Microsoft