XamlLight Classe

Definizione

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à
Object IInspectable DependencyObject XamlLight
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 null sempre in un'app di SDK per app di Windows. Usare invece DispatcherQueue .

(Ereditato da DependencyObject)
DispatcherQueue

Ottiene l'oggetto DispatcherQueue a cui è associato questo oggetto. Rappresenta DispatcherQueue una funzionalità che può accedere al nel thread dell'interfaccia DependencyObject utente anche se il codice viene avviato da un thread non dell'interfaccia utente.

(Ereditato da DependencyObject)

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)

Si applica a

Vedi anche