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 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
- 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 |
DispatcherQueue |
Obtient le |
Méthodes
AddTargetBrush(String, Brush) | |
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) | |
RemoveTargetElement(String, UIElement) | |
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) |