XamlLight Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit une classe de base utilisée pour créer des lumières XAML qui utilisent un CompositionLight pour appliquer des effets d’éclairage aux éléments et pinceaux 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
- Héritage
- 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 pour les éclairer.
XamlLight fournit des méthodes pour cibler des éléments UIElements ou des pinceaux XAML, appliquer des lumières aux arborescences d’UIElements et aider à gérer la durée de vie des ressources CompositionLight en fonction de leur utilisation.
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 allumés par un xamlLight.
Ciblage d’objets
Si vous ciblez un pinceau avec xamlLight, les parties de tous les uiElements utilisant ce pinceau seront allumées par la lumière.
Si vous ciblez un UIElement avec xamlLight, l’ensemble de l’UIElement et ses uiElements enfants seront tous allumés par la lumière.
Les cibles peuvent être ajoutées et supprimées en appelant des méthodes sur une 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 cibler un élément ou un pinceau à l’écran. Vous pouvez donc remplacer OnConnected pour créer des ressources en toute sécurité uniquement quand 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’une instance XamlLight n’est plus utilisée n’importe où sur l’écran. Vous pouvez donc remplacer OnDisconnected pour supprimer en toute sécurité les ressources. Si XamlLight est utilisé ultérieurement après avoir été déconnecté, OnConnected est appelé à nouveau.
Warning
Sur Windows 10 Creators Update (SDK 15063), CompositionLight n'est pas accessible après l'appel de Dispose. Par conséquent, la définition de la valeur Null après l'appel de Dispose provoque une erreur. Pour contourner ce problème, vous pouvez enregistrer CompositionLight dans une variable temporaire et appeler Dispose sur celui-ci 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 Kit de développement logiciel (SDK), consultez Versions adaptatives .
Constructeurs
| Nom | Description |
|---|---|
| XamlLight() |
Initialise une nouvelle instance de la classe XamlLight . |
Propriétés
| Nom | Description |
|---|---|
| CompositionLight |
Obtient ou définit l’instance CompositionLight utilisée pour appliquer des effets d’éclairage. |
| Dispatcher |
Retourne |
| DispatcherQueue |
Obtient le |
Méthodes
| Nom | Description |
|---|---|
| AddTargetBrush(String, Brush) | |
| AddTargetElement(String, UIElement) | |
| 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 nom complet de votre type XamlLight personnalisé. L’identificateur est utilisé pour ajouter et supprimer des pinceaux et des 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 DependencyObject. (Hérité de DependencyObject) |
| OnConnected(UIElement) |
Cette méthode est automatiquement appelée lorsque XamlLight est utilisé pour la première fois sur l’écran, ou après avoir été précédemment déconnecté, puis utilisé à nouveau. Cela permet de créer des ressources telles que CompositionLight uniquement si nécessaire. OnDisconnected est appelé lorsque XamlLight n’est plus utilisé pour allumer des uiElements ou des pinceaux. |
| OnDisconnected(UIElement) |
Cette méthode est automatiquement appelée lorsque XamlLight n’est plus utilisé n’importe où sur l’écran. Cela permet de supprimer en toute sécurité des ressources telles que CompositionLight lorsqu’elles ne sont pas requises. OnConnected est appelé à nouveau si XamlLight est utilisé ultérieurement pour allumer les éléments UIElements ou pinceaux après avoir été déconnectés. |
| 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 à une dependencyProperty spécifique sur cette instance DependencyObject . (Hérité de DependencyObject) |
| RemoveTargetBrush(String, Brush) | |
| 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 qui a été précédemment inscrite en appelant RegisterPropertyChangedCallback. (Hérité de DependencyObject) |