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 в зависимости от того, используются ли они в настоящее время.
Пользовательские объекты XamlLight можно использовать в сочетании с пользовательскими кисти, производными от XamlCompositionBrushBase , которые используют SceneLightingEffect для управления отражающими свойствами элементов при освещении XamlLight.
Нацеливание на объекты
Если в качестве целевого объекта XamlLight выбрана кисть (Brush), будут освещены все части объектов UIElements, для которых использовалась эта кисть.
Если в качестве целевого объекта XamlLight выбран UIElement, будет освещен весь этот объект UIElement вместе со своими дочерними объектами UIElement.
Целевые объекты можно добавлять и удалять, вызывая методы в экземпляре XamlLight. XamlLights также может определять пользовательские присоединенные свойства для добавления и удаления целевых объектов из разметки.
Управление ресурсами
При создании XamlLight обычно рекомендуется отложить создание CompositionLight и связанных ресурсов до тех пор, пока не будет использован свет. Метод OnConnected вызывается, когда xamlLight впервые используется для нацеливания на элемент или кисть на экране, поэтому вы можете переопределить OnConnected , чтобы безопасно создавать ресурсы только тогда, когда они необходимы.
Кроме того, рекомендуется удалять ресурсы композиции, когда они больше не используются. Метод OnDisconnected вызывается, когда экземпляр XamlLight больше не используется на экране, поэтому вы можете переопределить OnDisconnected для безопасного удаления ресурсов. Если xamlLight позже будет использоваться снова после отключения, onConnected будет вызван снова.
Предупреждение
На Windows 10 Creators Update (ПАКЕТ SDK 15063) доступ к CompositionLight после вызова 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. Идентификатор используется для добавления и удаления кистей и элементов UIElement в качестве целевых объектов для определенного типа освещения. |
GetValue(DependencyProperty) |
Возвращает текущее действующее значение свойства зависимостей из DependencyObject. (Унаследовано от DependencyObject) |
OnConnected(UIElement) |
Этот метод вызывается автоматически при первом использовании XamlLight на экране или после отключения, а затем повторного использования. Это дает возможность создавать такие ресурсы, как CompositionLight, только при необходимости. OnDisconnected будет вызываться , когда XamlLight больше не используется для освещения элементов UIElement или Brushes. |
OnDisconnected(UIElement) |
Этот метод вызывается автоматически, когда XamlLight больше не используется нигде на экране. Это обеспечивает возможность безопасного удаления ресурсов, таких как CompositionLight, если они в настоящее время не требуются. OnConnected будет вызываться снова, если xamlLight позже будет использоваться для освещения элементов UIElement или Brush после отключения. |
ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если задано локальное значение. (Унаследовано от DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Регистрирует функцию уведомления для прослушивания изменений определенного DependencyProperty в этом экземпляре DependencyObject . (Унаследовано от DependencyObject) |
RemoveTargetBrush(String, Brush) | |
RemoveTargetElement(String, UIElement) | |
SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей для Объекта DependencyObject. (Унаследовано от DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова Метода RegisterPropertyChangedCallback. (Унаследовано от DependencyObject) |