Condividi tramite


XamlLight Classe

Definizione

Fornisce una classe di base usata per creare luci XAML che usano un oggetto CompositionLight per applicare effetti di illuminazione agli elementi e ai pennelli XAML.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [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(Windows.Foundation.UniversalApiContract), 262144)]
[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

Requisiti Windows

Famiglia di dispositivi
Windows 10 Creators Update (è stato introdotto in 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v4.0)

Esempio

Vedere l'esempio di codice in Illuminazione.

Commenti

È possibile 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 lucerli.

XamlLight fornisce metodi per la destinazione di UIElements o pennelli XAML, l'applicazione delle luci agli alberi di UIElements e la gestione della durata delle risorse CompositionLight in base al fatto che siano attualmente in uso.

È possibile usare XamlLight personalizzati in combinazione con pennelli personalizzati derivati da XamlCompositionBrushBase che usano sceneLightingEffect per controllare le proprietà riflettenti degli elementi quando vengono illuminati da xamlLight.

Destinazione degli oggetti

Se si fa riferimento a un pennello con XamlLight, le parti di qualsiasi UIElements che usa tale pennello verrà illuminata dalla luce.

Se si punta a 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 metodi in un'istanza XamlLight. XamlLights può anche definire proprietà associate personalizzate per aggiungere e rimuovere destinazioni dal markup.

Gestione delle risorse

Quando si crea un XamlLight, in genere è consigliabile ritardare la creazione di un oggetto CompositionLight e qualsiasi risorsa correlata fino a quando non viene usata la luce. Il metodo OnConnected viene chiamato quando un XamlLight viene usato per la prima volta per indirizzare un elemento o un pennello sullo schermo, quindi è possibile eseguire l'override di OnConnected per creare risorse in modo sicuro 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 XamlLight non è più usata ovunque sullo schermo, quindi è possibile eseguire l'override di OnDisconnected per eliminare in modo sicuro le risorse. Se xamlLight viene usato di nuovo dopo la disconnessione, Verrà chiamato di nuovo OnConnected .

Avviso

In Windows 10 Creators Update (SDK 15063), CompositionLight non può essere accessibile dopo aver chiamato Dispose, quindi impostarlo su Null dopo aver chiamato Dispose causa un errore. Per risolvere questo problema, è possibile salvare CompositionLight in una variabile temporanea e chiamare Dispose in questo caso dopo aver impostato CompositionLight su Null. var temp = CompostionLight; CompositionLight = null; temp.Dispose(); Questo problema è stato risolto nelle versioni successive dell'SDK. Per informazioni su come usare diverse versioni di 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 usata per applicare gli effetti di illuminazione.

Dispatcher

Ottiene CoreDispatcher associato a questo oggetto. CoreDispatcher rappresenta una struttura che può accedere a DependencyObject nel thread dell'interfaccia utente anche se il codice viene avviato da un thread non interfaccia utente.

(Ereditato da DependencyObject)

Metodi

AddTargetBrush(String, Brush)

Imposta un pennello come destinazione di 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, è possibile usare FullName del tipo XamlLight personalizzato.

L'identificatore viene usato per aggiungere e rimuovere pennelli e UIElements come destinazioni per un tipo di luce specifico.

GetValue(DependencyProperty)

Restituisce il valore effettivo corrente di una proprietà di dipendenza da un oggetto 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, 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 lucere gli elementi UIElements o i 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 UIElements o Pennelli dopo la disconnessione.

ReadLocalValue(DependencyProperty)

Restituisce il valore locale di una proprietà di dipendenza, se viene impostato un valore locale.

(Ereditato da DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una funzione di notifica per l'ascolto delle modifiche a un'istanza di DependencyObject specifica.

(Ereditato da DependencyObject)
RemoveTargetBrush(String, Brush)

Impedisce a Un pennello di essere una destinazione di XamlLight.

RemoveTargetElement(String, UIElement)

Impedisce a un 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