Partager via


XamlLight Classe

Définition

Fournit une classe de base utilisée pour créer des lumières XAML qui utilisent un Objet CompositionLight pour appliquer des effets d’éclairage aux éléments XAML et aux pinceaux.

/// [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
Héritage
Object IInspectable DependencyObject XamlLight
Attributs

Exemples

Consultez l’exemple de code dans Éclairage.

Remarques

Vous pouvez utiliser XamlLight pour créer des lumières personnalisées.

Par exemple, il peut être utilisé pour créer une lumière qui applique une composition SpotLight aux éléments cibles afin de les éclairer.

XamlLight fournit des méthodes pour cibler les éléments UIElements ou les pinceaux XAML, appliquer des lumières aux arborescences d’UIElements et aider à gérer la durée de vie des ressources CompositionLight selon qu’elles sont actuellement utilisées.

Les xamllights personnalisés peuvent être utilisés conjointement avec des pinceaux personnalisés dérivés de XamlCompositionBrushBase qui utilisent un SceneLightingEffect pour contrôler les propriétés réfléchissantes des éléments lorsqu’ils sont éclairés par un XamlLight.

Ciblage d’objets

Si vous ciblez un pinceau avec un XamlLight, les parties de tous les éléments UIElements utilisant ce pinceau seront allumées par la lumière.

Si vous ciblez un UIElement avec un xamlLight, l’ensemble de l’UIElement et ses uiElements enfants seront tous éclairés par la lumière.

Vous pouvez ajouter et supprimer des cibles en appelant des méthodes sur un instance XamlLight. XamlLights peut également définir des propriétés jointes personnalisées pour ajouter et supprimer des cibles du balisage.

Gestion des ressources

Lors de la création d’un XamlLight, il est généralement recommandé de retarder la création d’un Objet CompositionLight et de toutes les ressources associées jusqu’à ce que la lumière soit utilisée. La méthode OnConnected est appelée lorsqu’un xamlLight est utilisé pour la première fois pour cibler un élément ou un pinceau à l’écran. Vous pouvez donc remplacer OnConnected pour créer des ressources en toute sécurité uniquement lorsqu’elles sont nécessaires.

Il est également recommandé de supprimer les ressources de composition lorsqu’elles ne sont plus utilisées. La méthode OnDisconnected est appelée lorsqu’un instance XamlLight n’est plus utilisé à l’écran. Vous pouvez donc remplacer OnDisconnected pour éliminer les ressources en toute sécurité. Si xamlLight est réutilisé ultérieurement après avoir été déconnecté, OnConnected est appelé à nouveau.

Avertissement

Sur Windows 10 Creators Update (SDK 15063), CompositionLight n’est pas accessible après l’appel de Dispose. Par conséquent, le fait de le définir sur null après l’appel de Dispose génère une erreur. Pour contourner ce problème, vous pouvez enregistrer CompositionLight dans une variable temporaire et appeler Disposer après avoir défini CompositionLight sur null. var temp = CompositionLight; CompositionLight = null; temp.Dispose(); Ce problème est résolu dans les versions ultérieures du Kit de développement logiciel (SDK). Pour plus d’informations sur la façon de cibler différentes versions du SDK, consultez Applications adaptatives de version.

Constructeurs

XamlLight()

Initialise une nouvelle instance de la classe XamlLight.

Propriétés

CompositionLight

Obtient ou définit le instance CompositionLight utilisé pour appliquer des effets d’éclairage.

Dispatcher

Retourne null toujours dans une application SDK d'application Windows. Utilisez DispatcherQueue à la place.

(Hérité de DependencyObject)
DispatcherQueue

Obtient le DispatcherQueue auquel cet objet est associé. DispatcherQueue représente une installation qui peut accéder au DependencyObject sur le thread d’interface utilisateur, même si le code est initié par un thread autre que l’interface utilisateur.

(Hérité de DependencyObject)

Méthodes

AddTargetBrush(String, Brush)

Définit un pinceau en tant que cible d’un xamlLight.

AddTargetElement(String, UIElement)

Définit un élément UIElement en tant que cible d’un xamlLight.

ClearValue(DependencyProperty)

Efface la valeur locale d’une propriété de dépendance.

(Hérité de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Retourne toute valeur de base établie pour une propriété de dépendance, qui s’applique dans les cas où une animation n’est pas active.

(Hérité de DependencyObject)
GetId()

Retourne l’identificateur du type XamlLight personnalisé.

Dans la plupart des cas, vous devez utiliser un identificateur unique pour éviter les conflits. Par exemple, vous pouvez utiliser le FullName de votre type XamlLight personnalisé.

L’identificateur est utilisé pour ajouter et supprimer des pinceaux et des éléments UIElements en tant que cibles pour un type de lumière spécifique.

GetValue(DependencyProperty)

Retourne la valeur effective actuelle d’une propriété de dépendance à partir d’un objet DependencyObject.

(Hérité de DependencyObject)
OnConnected(UIElement)

Cette méthode est appelée automatiquement lorsque XamlLight est utilisé pour la première fois à l’écran, ou après avoir été précédemment déconnecté, puis à nouveau utilisé.

Cela permet de créer des ressources telles que CompositionLight uniquement en cas de besoin.

OnDisconnected est appelé lorsque xamlLight n’est plus utilisé pour allumer des éléments UIElements ou des pinceaux.

OnDisconnected(UIElement)

Cette méthode est automatiquement appelée lorsque XamlLight n’est plus utilisé à l’écran.

Cela permet d’éliminer en toute sécurité des ressources telles que CompositionLight lorsqu’elles ne sont pas requises actuellement.

OnConnected est appelé à nouveau si xamlLight est utilisé ultérieurement pour allumer des éléments UIElements ou des pinceaux après avoir été déconnecté.

ReadLocalValue(DependencyProperty)

Retourne la valeur locale d’une propriété de dépendance, si une valeur locale est définie.

(Hérité de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Inscrit une fonction de notification pour écouter les modifications apportées à un DependencyProperty spécifique sur ce instance DependencyObject.

(Hérité de DependencyObject)
RemoveTargetBrush(String, Brush)

Empêche un pinceau d’être une cible d’un XamlLight.

RemoveTargetElement(String, UIElement)

Empêche un uiElement d’être une cible d’un xamlLight.

SetValue(DependencyProperty, Object)

Définit la valeur locale d’une propriété de dépendance sur un DependencyObject.

(Hérité de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annule une notification de modification précédemment inscrite en appelant RegisterPropertyChangedCallback.

(Hérité de DependencyObject)

S’applique à

Voir aussi