XamlLight Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет базовый класс, используемый для создания фонарей XAML, использующих CompositionLight для применения эффектов освещения к элементам и кисти 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
- Наследование
- Атрибуты
Примеры
Пример кода см. в разделе "Освещение".
Комментарии
Вы можете использовать XamlLight для создания пользовательских фонарей.
Например, его можно использовать для создания света, применяющего композицию SpotLight для целевых элементов для их освещения.
XamlLight предоставляет методы для нацеливания на элементы UIElements или XAML-кисти, освещает деревья элементов интерфейса (UIElements) и помогает управлять сроком службы ресурсов CompositionLight на основе того, используются ли они в данный момент.
Пользовательские xamlLights можно использовать в сочетании с пользовательскими кисти, производными от XamlCompositionBrushBase , которые используют SceneLightingEffect для управления отражающими свойствами элементов при освещении XamlLight.
Целевые объекты
Если вы нацеливаете кисть с помощью XamlLight, то части любых uiElements с помощью этой кисти будут освещены светом.
Если вы нацелены на UIElement с xamlLight, то весь UIElement и его дочерние uiElements будут освещены светом.
Целевые объекты можно добавлять и удалять, вызывая методы в экземпляре XamlLight. XamlLights также может определять настраиваемые присоединенные свойства для добавления и удаления целевых объектов из разметки.
Управление ресурсами
При создании XamlLight обычно рекомендуется отложить создание CompositionLight и всех связанных ресурсов до тех пор, пока не будет использоваться свет. Метод OnConnected вызывается, когда XamlLight сначала используется для назначения элемента или кисти на экране, чтобы можно было переопределить OnConnected , чтобы безопасно создавать ресурсы только при необходимости.
Кроме того, рекомендуется удалять ресурсы композиции, когда они больше не используются. Метод OnDisconnected вызывается, когда экземпляр XamlLight больше не используется в любом месте экрана, поэтому вы можете переопределить OnDisconnected для безопасного удаления ресурсов. Если XamlLight позже будет использоваться снова после отключения, то OnConnected будет вызываться снова.
Предупреждение
В Windows 10 Creators Update (ПАКЕТ SDK 15063) CompositionLight не может быть доступен после вызова Dispose, поэтому при вызове метода Dispose установить значение NULL после вызова Dispose возникает ошибка. Чтобы обойти эту проблему, можно сохранить CompositionLight во временную переменную и вызвать Dispose в ней после задания CompositionLight значение NULL.
var temp = CompositionLight; CompositionLight = null; temp.Dispose(); Эта проблема устранена в более поздних версиях пакета SDK. Сведения о том, как использовать разные версии ПАКЕТА SDK, см. в статье "Адаптивные версии версий версий".
Конструкторы
| Имя | Описание |
|---|---|
| XamlLight() |
Инициализирует новый экземпляр класса XamlLight . |
Свойства
| Имя | Описание |
|---|---|
| CompositionLight |
Возвращает или задает экземпляр CompositionLight , используемый для применения эффектов освещения. |
| Dispatcher |
Всегда возвращается |
| DispatcherQueue |
Возвращает, |
Методы
| Имя | Описание |
|---|---|
| AddTargetBrush(String, Brush) | |
| AddTargetElement(String, UIElement) | |
| ClearValue(DependencyProperty) |
Очищает локальное значение свойства зависимостей. (Унаследовано от DependencyObject) |
| GetAnimationBaseValue(DependencyProperty) |
Возвращает любое базовое значение, установленное для свойства зависимостей, которое будет применяться в случаях, когда анимация не активна. (Унаследовано от DependencyObject) |
| GetId() |
Возвращает идентификатор пользовательского типа XamlLight . В большинстве случаев следует использовать уникальный идентификатор для предотвращения конфликтов. Например, можно использовать FullName пользовательского типа XamlLight. Идентификатор используется для добавления и удаления кистей и UIElements в качестве целевых объектов для определенного типа света. |
| GetValue(DependencyProperty) |
Возвращает текущее эффективное значение свойства зависимостей из DependencyObject. (Унаследовано от DependencyObject) |
| OnConnected(UIElement) |
Этот метод автоматически вызывается при первом использовании XamlLight на экране или после того, как он был отключен ранее, а затем снова использовался. Это дает возможность создавать такие ресурсы, как CompositionLight, только если это необходимо. OnDisconnected будет вызываться, когда XamlLight больше не используется для освещения элементов UIElements или Кистей. |
| OnDisconnected(UIElement) |
Этот метод автоматически вызывается, когда XamlLight больше не используется в любом месте на экране. Это обеспечивает возможность безопасного удаления ресурсов, таких как CompositionLight, если они в настоящее время не требуются. OnConnected будет вызываться снова, если XamlLight позже используется для освещения любых uiElements или Кистей после отключения. |
| ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если задано локальное значение. (Унаследовано от DependencyObject) |
| RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Регистрирует функцию уведомлений для прослушивания изменений в определенном экземпляре DependencyProperty в этом экземпляре DependencyObject . (Унаследовано от DependencyObject) |
| RemoveTargetBrush(String, Brush) |
Останавливает кисть от того, чтобы быть целевым объектом XamlLight. |
| RemoveTargetElement(String, UIElement) |
Останавливает uiElement от того, чтобы быть целевым объектом XamlLight. |
| SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей в DependencyObject. (Унаследовано от DependencyObject) |
| UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Отменяет уведомление об изменении, которое ранее было зарегистрировано путем вызова RegisterPropertyChangedCallback. (Унаследовано от DependencyObject) |