Freigeben über


XamlLight Klasse

Definition

Stellt eine Basisklasse bereit, die zum Erstellen von XAML-Lichtern verwendet wird, die ein CompositionLight verwenden, um Beleuchtungseffekte auf XAML-Elemente und Pinsel anzuwenden.

/// [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
Vererbung
Object IInspectable DependencyObject XamlLight
Attribute

Beispiele

Sehen Sie sich das Codebeispiel unter Beleuchtung an.

Hinweise

Sie können XamlLight verwenden, um benutzerdefinierte Lichter zu erstellen.

Es kann beispielsweise verwendet werden, um ein Licht zu erstellen, das eine Komposition SpotLight auf Zielelemente anwendet, um sie zu beleuchten.

XamlLight bietet Methoden für uiElements oder XAML-Pinsel, das Anwenden von Lichtern auf Strukturen von UIElements und die Verwaltung der Lebensdauer von CompositionLight-Ressourcen basierend darauf, ob sie derzeit verwendet werden.

Benutzerdefinierte XamlLights können in Verbindung mit benutzerdefinierten Pinsel verwendet werden, die von XamlCompositionBrushBase abgeleitet werden, die ein SceneLightingEffect verwenden, um die reflektierenden Eigenschaften von Elementen zu steuern, wenn sie von einem XamlLight beleuchtet werden.

Zielobjekte

Wenn Sie einen Pinsel mit einem XamlLight als Ziel verwenden, werden die Teile aller UIElements, die diesen Pinsel verwenden, durch das Licht beleuchtet.

Wenn Sie ein UIElement mit einem XamlLight als Ziel verwenden, leuchtet das gesamte UIElement und die untergeordneten UIElements alle durch das Licht.

Ziele können hinzugefügt und entfernt werden, indem Methoden für eine XamlLight-instance aufgerufen werden. XamlLights kann auch benutzerdefinierte angefügte Eigenschaften definieren, um Ziele zum Markup hinzuzufügen und daraus zu entfernen.

Verwalten von Ressourcen

Beim Erstellen eines XamlLight-Werts empfiehlt es sich in der Regel, die Erstellung eines CompositionLight und aller zugehörigen Ressourcen zu verzögern, bis das Licht verwendet wird. Die OnConnected-Methode wird aufgerufen, wenn xamlLight zum ersten Mal für ein Element oder Pinsel auf dem Bildschirm verwendet wird, sodass Sie OnConnected überschreiben können, um Ressourcen sicher zu erstellen, wenn sie benötigt werden.

Es ist auch eine bewährte Methode, Kompositionsressourcen zu verwerfen, wenn sie nicht mehr verwendet werden. Die OnDisconnected-Methode wird aufgerufen, wenn ein XamlLight-instance nicht mehr auf dem Bildschirm verwendet wird, sodass Sie OnDisconnected überschreiben können, um Ressourcen sicher zu löschen. Wenn XamlLight nach dem Trennen wieder verwendet wird, wird OnConnected erneut aufgerufen.

Warnung

Auf Windows 10 Creators Update (SDK 15063) kann nach dem Aufruf von Dispose nicht auf CompositionLight zugegriffen werden, sodass das Festlegen auf NULL nach dem Aufruf von Dispose zu einem Fehler führt. Um dieses Problem zu umgehen, können Sie CompositionLight in einer temporären Variablen speichern und Dispose für diese aufrufen, nachdem Sie CompositionLight auf NULL festgelegt haben. var temp = CompositionLight; CompositionLight = null; temp.Dispose(); Dieses Problem wurde in späteren Versionen des SDK behoben. Informationen dazu, wie Verschiedene SDK-Versionen als Ziel verwendet werden, finden Sie unter Versionsadaptive Apps .

Konstruktoren

XamlLight()

Initialisiert eine neue instance der XamlLight-Klasse.

Eigenschaften

CompositionLight

Ruft die CompositionLight-instance ab, die zum Anwenden von Beleuchtungseffekten verwendet wird, oder legt diesen fest.

Dispatcher

Gibt immer in einer Windows App SDK-App zurücknull. Verwenden Sie stattdessen DispatcherQueue .

(Geerbt von DependencyObject)
DispatcherQueue

Ruft den DispatcherQueue ab, dem dieses Objekt zugeordnet ist. Stellt DispatcherQueue eine Funktion dar, die auf den DependencyObject im UI-Thread zugreifen kann, auch wenn der Code von einem Nicht-UI-Thread initiiert wird.

(Geerbt von DependencyObject)

Methoden

AddTargetBrush(String, Brush)

Legt einen Pinsel als Ziel eines XamlLight fest.

AddTargetElement(String, UIElement)

Legt ein UIElement als Ziel eines XamlLight-Elements fest.

ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Abhängigkeitseigenschaft.

(Geerbt von DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Gibt einen beliebigen Basiswert zurück, der für eine Abhängigkeitseigenschaft eingerichtet wurde, der in Fällen gilt, in denen eine Animation nicht aktiv ist.

(Geerbt von DependencyObject)
GetId()

Gibt den Bezeichner für den benutzerdefinierten XamlLight-Typ zurück.

In den meisten Fällen sollten Sie einen eindeutigen Bezeichner verwenden, um Konflikte zu verhindern. Beispielsweise können Sie den FullName ihres benutzerdefinierten XamlLight-Typs verwenden.

Der Bezeichner wird verwendet, um Pinsel und UIElements als Ziele für einen bestimmten Lichttyp hinzuzufügen und zu entfernen.

GetValue(DependencyProperty)

Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft aus einem DependencyObject zurück.

(Geerbt von DependencyObject)
OnConnected(UIElement)

Diese Methode wird automatisch aufgerufen, wenn xamlLight zum ersten Mal auf dem Bildschirm verwendet wird, oder nachdem sie zuvor getrennt und dann erneut verwendet wurde.

Dies bietet die Möglichkeit, Ressourcen wie CompositionLight nur bei Bedarf zu erstellen.

OnDisconnected wird aufgerufen, wenn XamlLight nicht mehr verwendet wird, um UIElements oder Pinsel auszuleuchten.

OnDisconnected(UIElement)

Diese Methode wird automatisch aufgerufen, wenn XamlLight nicht mehr auf dem Bildschirm verwendet wird.

Dies bietet die Möglichkeit, Ressourcen wie CompositionLight sicher zu verwerfen, wenn sie derzeit nicht benötigt werden.

OnConnected wird erneut aufgerufen, wenn XamlLight später verwendet wird, um UIElements oder Pinsel nach der Trennung auszuleuchten.

ReadLocalValue(DependencyProperty)

Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn ein lokaler Wert festgelegt ist.

(Geerbt von DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registriert eine Benachrichtigungsfunktion zum Lauschen auf Änderungen an einer bestimmten DependencyProperty für dieses DependencyObject-instance.

(Geerbt von DependencyObject)
RemoveTargetBrush(String, Brush)

Verhindert, dass ein Pinsel ein Ziel eines XamlLight ist.

RemoveTargetElement(String, UIElement)

Verhindert, dass ein UIElement ein Ziel eines XamlLight-Elements ist.

SetValue(DependencyProperty, Object)

Legt den lokalen Wert einer Abhängigkeitseigenschaft für ein DependencyObject fest.

(Geerbt von DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Bricht eine Änderungsbenachrichtigung ab, die zuvor durch Aufrufen von RegisterPropertyChangedCallback registriert wurde.

(Geerbt von DependencyObject)

Gilt für:

Weitere Informationen