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 un oggetto Storyboard e DoubleAnimation per la destinazione Opacity. Questo anima l'Opacità per creare un'animazione di dissolvenza decorativa specifica dell'app in un secondo tempo.

  <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

Commenti

Quando l'Opacità è impostata 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 Opacity effettivo per il rendering è 0.25. I valori di Opacità maggiori di 1,0 vengono considerati 1,0 quando viene usato il valore, anche se si ottiene il valore della proprietà, verrà comunque restituito il valore originale maggiore di uno. I valori di opacità impostati come meno di 0 vengono considerati come 0 quando viene usato il valore. Nella logica di fattorizzazione impostare un Opacity su 2 per annullare gli effetti di essere contenuti da un oggetto con opacità 0,5 non funziona; il valore 2 viene considerato come 1,0 anche prima che venga calcolato il fattore dell'oggetto annidato.

L'opacità è 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. Per altre informazioni sull'utilizzo di Opacity, vedere Animazioni storyboard per gli stati visivi.

Opacità e hit test

Un valore Opacity 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 disegno Canvas si trovano sopra l'uno all'altro nello stesso sistema di coordinate assoluto. Assicurarsi che il valore ZIndex del rettangolo sia superiore a quello dell'altro elemento ZIndex (o dichiarare il rettangolo dopo l'altro elemento dell'elemento XAML per ottenere lo stesso risultato). Collegare la logica di hit testing (combina PointerRoutedEventArgs.GetCurrentPoint e VisualTreeHelper.FindElementsInHostCoordinates) all'evento PointerPressed per Il rettangolo.

In alternativa, per escludere un oggetto da hit test, è consigliabile impostare IsHitTestVisible su false anziché usare Opacity.

Si applica a

Vedi anche