XamlLight Klasse

Definition

Stellt eine Basisklasse bereit, die zum Erstellen von XAML-Leuchten 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 in Lighting an.

Hinweise

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

Beispielsweise kann es verwendet werden, um ein Licht zu erstellen, das eine Komposition SpotLight auf Elemente anwendet, um sie zu beleuchten.

XamlLight bietet Methoden zum Ausrichten von UIElements oder XAML-Pinsel, das Anwenden von Lichtern auf Bäume von UIElements und hilft bei der 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.

Adressierung von Objekten

Wenn Sie auf einen Pinsel mit xamlLight abzielen, werden die Teile aller UIElements, die diesen Pinsel verwenden, vom Licht beleuchtet.

Wenn Sie ein UIElement mit einem XamlLight-Element als Ziel festlegen, wird das gesamte UIElement und dessen untergeordnete UIElements alle durch das Licht beleuchtet.

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

Verwalten von Ressourcen

Beim Erstellen eines XamlLight empfiehlt es sich in der Regel, das Erstellen eines CompositionLight und alle zugehörigen Ressourcen zu verzögern, bis das Licht verwendet wird. Die OnConnected-Methode wird aufgerufen, wenn ein XamlLight zum ersten Mal zum Ziel eines Elements oder Pinsels auf dem Bildschirm verwendet wird, sodass Sie OnConnected außer Kraft setzen können, um Ressourcen nur dann sicher zu erstellen, wenn sie benötigt werden.

Außerdem empfiehlt es sich, Kompositionsressourcen zu löschen, wenn sie nicht mehr verwendet werden. Die OnDisconnected-Methode wird aufgerufen, wenn eine XamlLight-Instanz nicht mehr an einer beliebigen Stelle auf dem Bildschirm verwendet wird, sodass Sie OnDisconnected außer Kraft setzen können, um Ressourcen sicher zu löschen. Wenn xamlLight später erneut verwendet wird, nachdem die Verbindung getrennt wurde, wird "OnConnected" erneut aufgerufen.

Warning

Bei Windows 10 Creators Update (SDK 15063) kann CompositionLight nach dem Aufrufen von Dispose nicht darauf zugegriffen werden, sodass das Festlegen auf NULL nach dem Aufrufen von Dispose zu einem Fehler führt. Um dieses Problem zu umgehen, können Sie "CompositionLight" in einer temporären Variablen speichern und "Dispose" 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 zum Ausrichten verschiedener SDK-Versionen finden Sie unter versionsadaptive Apps .

Konstruktoren

Name Beschreibung
XamlLight()

Initialisiert eine neue Instanz der XamlLight-Klasse .

Eigenschaften

Name Beschreibung
CompositionLight

Dient zum Abrufen oder Festlegen der CompositionLight-Instanz , die zum Anwenden von Beleuchtungseffekten verwendet wird.

Dispatcher

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

(Geerbt von DependencyObject)
DispatcherQueue

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

(Geerbt von DependencyObject)

Methoden

Name Beschreibung
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 Basiswert zurück, der für eine Abhängigkeitseigenschaft eingerichtet wurde, was in Fällen angewendet wird, 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. Sie können beispielsweise 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 das XamlLight zum ersten Mal auf dem Bildschirm verwendet wird oder nachdem die Verbindung zuvor getrennt wurde und dann erneut verwendet wird.

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

OnDisconnected wird aufgerufen, wenn xamlLight nicht mehr zum Licht von UIElements oder Pinsel verwendet wird.

OnDisconnected(UIElement)

Diese Methode wird automatisch aufgerufen, wenn xamlLight nicht mehr überall auf dem Bildschirm verwendet wird.

Dies bietet die Möglichkeit, Ressourcen wie compositionLight sicher zu löschen, wenn sie derzeit nicht erforderlich sind.

OnConnected wird erneut aufgerufen, wenn das XamlLight später verwendet wird, um UIElements oder Pinsel nach dem Trennen zu leuchten.

ReadLocalValue(DependencyProperty)

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

(Geerbt von DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registriert eine Benachrichtigungsfunktion, um Änderungen an einer bestimmten DependencyProperty für diese DependencyObject-Instanz zu überwachen.

(Geerbt von DependencyObject)
RemoveTargetBrush(String, Brush)

Stoppt, dass ein Pinsel ein Ziel eines XamlLight ist.

RemoveTargetElement(String, UIElement)

Stoppt, dass ein UIElement ein Ziel eines XamlLight 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