UIElement.Opacity Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta il grado di opacità dell'oggetto.
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" .../>
Valore della proprietà
double
Valore compreso tra 0 e 1.0 che dichiara il fattore di opacità, con 1,0 che significa opacità completa e 0 significa trasparente. Il valore predefinito è 1,0.
Esempio
In questo esempio viene usato uno Storyboard e DoubleAnimation per la destinazione Opacity
. Questo anima l'oggetto Opacity
per creare un'animazione decorativa specifica dell'app su un secondo.
<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>
Commenti
Quando Opacity
viene impostato su oggetti annidati, l'opacità effettiva per il rendering è il prodotto di tutti i fattori di opacità applicabili. Ad esempio, se un oggetto contenente Opacity=0.5
è contenuto in un canvas che è anche Opacity=0.5
, il valore effettivo Opacity
per il rendering è 0.25
.
Opacity
i valori maggiori di 1.0 vengono considerati 1.0 quando viene usato il valore, anche se l'acquisizione del valore della proprietà darà comunque il valore originale maggiore di uno.
Opacity
i valori impostati come meno di 0 vengono considerati come 0 quando viene usato il valore. Nella logica di fattorizzazione impostare un Opacity
valore su 2 per annullare gli effetti di essere contenuti da un oggetto con 0,5 Opacity
non funziona. Il valore 2 viene considerato come 1,0 anche prima che venga calcolato il fattore dell'oggetto annidato.
Opacity
è una proprietà a volte animata nei storyboard dello stato visivo, con durata zero. Ad esempio, il rettangolo di messa a fuoco per gli stati visivi "FocusStates" è impostato Opacity="0"
con nel modello di controllo originale, perché non si vuole che questo rettangolo venga visualizzato in uno stato non incentrato predefinito. Tuttavia, gli stati visivi definiscono uno stato "Focus" di durata zero che imposta Opacity su 1 quando il controllo usando questi modelli e stati ha rilevato che è incentrato sulla tastiera.
Opacità e hit test
Un Opacity
valore pari a 0 non esclude un oggetto da hit testing. Questo comportamento può essere utile per la creazione di sovrimpressione in stile imagemap che vengono disegnate sopra il resto dell'interfaccia utente. Ad esempio, è possibile usare un canvas con due elementi figlio: un rettangolocon altezza,larghezza e opacità pari a 0 e la radice del layout del resto dell'interfaccia utente che dovrebbe disegnare sotto. Per impostazione predefinita, i figli di un Canvas
disegno sopra l'uno all'altro nello stesso sistema di coordinate assoluto. Assicurarsi che il valore ZIndex dell'oggetto sia superiore a quello dell'altro Rectangle
ZIndex
elemento (o dichiarare dopo Rectangle
l'altro elemento nell'elemento XAML per ottenere lo stesso risultato). Collegare la logica di hit test (combina Microsoft.UI.Xaml.Input.PointerRoutedEventArgs.GetCurrentPoint e VisualTreeHelper.FindElementsInHostCoordinates all'evento PointerPressed per .Rectangle
In alternativa, per escludere un oggetto da hit test, è necessario impostare IsHitTestVisible su false
, anziché usare Opacity
.