XamlLight Classe
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.
Fornisce una classe di base usata per creare luci XAML che usano compositionLight per applicare effetti di illuminazione a elementi e pennelli XAML.
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class XamlLight : DependencyObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class XamlLight : DependencyObject
Public Class XamlLight
Inherits DependencyObject
- Ereditarietà
- Attributi
Esempio
Vedere l'esempio di codice in Illuminazione.
Commenti
Puoi usare XamlLight per creare luci personalizzate.
Ad esempio, può essere usato per creare una luce che applica una composizione SpotLight agli elementi di destinazione per accenderli.
XamlLight fornisce metodi per la destinazione di UIElements o pennelli XAML, l'applicazione di luci agli alberi di UIElement e la gestione della durata delle risorse CompositionLight in base al fatto che siano attualmente in uso.
XamlLight personalizzati possono essere usati insieme ai pennelli personalizzati derivati da XamlCompositionBrushBase che usano sceneLightingEffect per controllare le proprietà riflettenti degli elementi quando vengono illuminati da xamlLight.
Destinazione degli oggetti
Se usi un oggetto Brush con xamlLight, le parti di qualsiasi UIElement che usa tale pennello verranno accese dalla luce.
Se hai come destinazione un oggetto UIElement con xamlLight, l'intero UIElement e i relativi UIElement figlio saranno tutti illuminati dalla luce.
Le destinazioni possono essere aggiunte e rimosse chiamando i metodi in un'istanza di XamlLight. XamlLights può anche definire proprietà associate personalizzate per aggiungere e rimuovere destinazioni dal markup.
Gestione delle risorse
Quando si crea un oggetto XamlLight, in genere è consigliabile ritardare la creazione di compositionLight ed eventuali risorse correlate fino a quando non viene usata la luce. Il metodo OnConnected viene chiamato quando xamlLight viene usato per la prima volta per impostare come destinazione un elemento o un pennello sullo schermo, in modo da poter eseguire l'override di OnConnected per creare in modo sicuro le risorse solo quando sono necessarie.
È anche consigliabile eliminare le risorse di composizione quando non sono più in uso. Il metodo OnDisconnected viene chiamato quando un'istanza di XamlLight non è più in uso ovunque sullo schermo, in modo da poter eseguire l'override di OnDisconnected per eliminare in modo sicuro le risorse. Se XamlLight viene usato di nuovo in un secondo momento dopo essere stato disconnesso, OnConnected verrà chiamato di nuovo.
Avvertimento
In Windows 10 Creators Update (SDK 15063), CompositionLight non è accessibile dopo la chiamata a Dispose, quindi impostarlo su null dopo la chiamata a Dispose genera un errore. Per risolvere questo problema, è possibile salvare CompositionLight in una variabile temporanea e chiamare Dispose su tale variabile dopo aver impostato CompositionLight su null.
var temp = CompositionLight; CompositionLight = null; temp.Dispose(); Questo problema è stato risolto nelle versioni successive dell'SDK. Vedi App adattive per la versione per informazioni su come usare versioni diverse dell'SDK.
Costruttori
| Nome | Descrizione |
|---|---|
| XamlLight() |
Inizializza una nuova istanza della classe XamlLight . |
Proprietà
| Nome | Descrizione |
|---|---|
| CompositionLight |
Ottiene o imposta l'istanza di CompositionLight utilizzata per applicare effetti di illuminazione. |
| Dispatcher |
Restituisce |
| DispatcherQueue |
Ottiene l'oggetto |
Metodi
| Nome | Descrizione |
|---|---|
| AddTargetBrush(String, Brush) |
Imposta un oggetto Brush come destinazione di un oggetto XamlLight. |
| AddTargetElement(String, UIElement) |
Imposta un oggetto UIElement come destinazione di un oggetto XamlLight. |
| ClearValue(DependencyProperty) |
Cancella il valore locale di una proprietà di dipendenza. (Ereditato da DependencyObject) |
| GetAnimationBaseValue(DependencyProperty) |
Restituisce qualsiasi valore di base stabilito per una proprietà di dipendenza, che si applica nei casi in cui un'animazione non è attiva. (Ereditato da DependencyObject) |
| GetId() |
Restituisce l'identificatore per il tipo XamlLight personalizzato. Nella maggior parte dei casi è consigliabile usare un identificatore univoco per evitare conflitti. Ad esempio, puoi usare fullName del tipo XamlLight personalizzato. L'identificatore viene usato per aggiungere e rimuovere Pennelli e UIElement come destinazioni per un tipo di luce specifico. |
| GetValue(DependencyProperty) |
Restituisce il valore effettivo corrente di una proprietà di dipendenza da dependencyObject. (Ereditato da DependencyObject) |
| OnConnected(UIElement) |
Questo metodo viene chiamato automaticamente quando XamlLight viene usato per la prima volta sullo schermo o dopo essere stato disconnesso in precedenza e quindi usato di nuovo. In questo modo è possibile creare risorse come CompositionLight solo quando necessario. OnDisconnected verrà chiamato quando XamlLight non viene più usato per accendere elementi UIElement o Pennelli. |
| OnDisconnected(UIElement) |
Questo metodo viene chiamato automaticamente quando XamlLight non è più in uso ovunque sullo schermo. In questo modo è possibile eliminare in modo sicuro le risorse, ad esempio CompositionLight, quando non sono attualmente necessarie. OnConnected verrà chiamato di nuovo se XamlLight viene usato in un secondo momento per accendere eventuali uiElement o pennelli dopo la disconnessione. |
| ReadLocalValue(DependencyProperty) |
Restituisce il valore locale di una proprietà di dipendenza, se è impostato un valore locale. (Ereditato da DependencyObject) |
| RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra una funzione di notifica per l'ascolto delle modifiche a una dipendenza specifica in questa istanza dependencyObject . (Ereditato da DependencyObject) |
| RemoveTargetBrush(String, Brush) |
Impedisce a Un pennello di essere una destinazione di XamlLight. |
| RemoveTargetElement(String, UIElement) |
Impedisce a un oggetto UIElement di essere una destinazione di XamlLight. |
| SetValue(DependencyProperty, Object) |
Imposta il valore locale di una proprietà di dipendenza in un Oggetto DependencyObject. (Ereditato da DependencyObject) |
| UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback. (Ereditato da DependencyObject) |