Condividi tramite


UIElement.Opacity Proprietà

Definizione

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

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 RectangleZIndex 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.

Si applica a

Vedi anche