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 illuminarli.
XamlLight fornisce metodi per la destinazione di UIElement 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 in combinazione con pennelli personalizzati derivati da XamlCompositionBrushBase che usano sceneLightingEffect per controllare le proprietà riflettenti degli elementi quando vengono illuminati da xamlLight.
Selezione di oggetti di destinazione
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 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 un oggetto CompositionLight ed eventuali risorse correlate fino a quando non viene usata la luce. Il metodo OnConnected viene chiamato quando un 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, quindi puoi eseguire l'override di OnDisconnected per eliminare in modo sicuro le risorse. Se XamlLight viene usato di nuovo dopo essere stato disconnesso, verrà chiamato di nuovo OnConnected .
Avviso
In Windows 10 Creators Update (SDK 15063), CompositionLight non può essere accessibile dopo la chiamata a Dispose, quindi impostarlo su null dopo la chiamata a Dispose causa 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. Per informazioni su come usare versioni diverse dell'SDK, vedere App adattive per la versione.
Costruttori
XamlLight() |
Inizializza una nuova istanza della classe XamlLight . |
Proprietà
CompositionLight |
Ottiene o imposta l'istanza di CompositionLight utilizzata per applicare effetti di illuminazione. |
Dispatcher |
Restituisce |
DispatcherQueue |
Ottiene l'oggetto a cui è associato l'oggetto |
Metodi
AddTargetBrush(String, Brush) |
Imposta un oggetto Brush come destinazione di un oggetto XamlLight. |
AddTargetElement(String, UIElement) |
Imposta un oggetto UIElement come destinazione di 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 qualsiasi UIElements o Brushes dopo essere stato disconnesso. |
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 apportate a una dipendenza specifica in questa istanza di DependencyObject . (Ereditato da DependencyObject) |
RemoveTargetBrush(String, Brush) |
Impedisce a un oggetto Brush 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 su dependencyObject. (Ereditato da DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback. (Ereditato da DependencyObject) |