ThemeShadow Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
ThemeShadow — это предварительно настроенный эффект тени, который можно применить к любому элементу XAML, чтобы отрисовать тени соответствующим образом на основе координат x, y, z. ThemeShadow также автоматически настраивается для других спецификаций среды:
- адаптируется к изменениям в освещении, пользовательской теме, среде приложения и оболочке;
- Автоматически затеняет элементы в зависимости от их высоты.
- обеспечивает синхронизацию элементов при их перемещении и изменении их высоты;
- обеспечивает согласованность теней во всех приложениях и между ними.
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 524288)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ThemeShadow : Shadow
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 524288)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class ThemeShadow : Shadow
Public Class ThemeShadow
Inherits Shadow
- Наследование
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10, version 1903 (появилось в 10.0.18362.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v8.0)
|
Примеры
Совет
Дополнительные сведения, рекомендации по проектированию и примеры кода см. в разделе Z-глубина и тень.
Многие распространенные элементы управления автоматически отбрасывает тени с помощью ThemeShadow.
Если у вас установлено приложение из коллекции WinUI 2 и вы соответствуете минимальным требованиям к версии Windows 10 выше, щелкните здесь, чтобы открыть приложение и увидеть ThemeShadow в действии с общими элементами управления.
Комментарии
Совет
Дополнительные сведения, рекомендации по проектированию и примеры кода см. в разделе Z-глубина и тень.
ThemeShadow можно применить к любому элементу XAML для рисования теней на основе относительных координат x, y и z между концептуальным элементом UIElement и одним или несколькими элементами UIElement приемника, на которых отрисовывается тень приведения.
ThemeShadow поддерживает только прямоугольные тени. Для пользовательских эффектов тени можно использовать DropShadow.
ThemeShadows in Popups
Класс ThemeShadow автоматически создаст отбрасываемые тени при применении к любому элементу XAML во всплывающем окне. Этот элемент будет отбрасывать тень на фоновое содержимое приложения позади себя и на любые другие открытые всплывающие окна под ним.
Чтобы использовать ThemeShadow с всплываками, используйте свойство UIElement.Shadow , чтобы применить ThemeShadow к элементу XAML. Затем повысьте уровень элемента из других за ним элементов, например с помощью компонента z свойства UIElement.Translation . Для большинства всплывающих элементов интерфейса рекомендуемая высота по умолчанию относительно фонового содержимого приложения составляет 32 эффективных пикселя.
ThemeShadow в других элементах
Чтобы создать тень от элемента XAML, который отсутствует во всплывающем окне, необходимо явно указать другие элементы, которые могут получать тень в коллекции ThemeShadow.Receivers . Получатель не может быть предком отбрасывающего тень элемента в визуальном дереве.
Рекомендации по повышению производительности для ThemeShadow
Ограничьте количество настраиваемых принимающих элементов до необходимого минимума.
Если несколько элементов-получателей находятся на одной высоте, попробуйте объединить их, нацелив на один родительский элемент.
Если несколько элементов будут отбрасывать тени одного и того же типа на одни и те же принимающие элементы, то добавьте тень в качестве общего ресурса и повторно используйте ее.
Конструкторы
ThemeShadow() |
Инициализирует новый экземпляр класса ThemeShadow . |
Свойства
Dispatcher |
Возвращает объект CoreDispatcher , с которым связан этот объект. CoreDispatcher представляет собой средство, которое может получить доступ к DependencyObject в потоке пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу. (Унаследовано от DependencyObject) |
Receivers |
Возвращает коллекцию элементов пользовательского интерфейса, к которым приводится объект ThemeShadow. |
Методы
ClearValue(DependencyProperty) |
Очищает локальное значение свойства зависимостей. (Унаследовано от DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Возвращает любое базовое значение, установленное для свойства зависимостей, которое применяется в случаях, когда анимация не активна. (Унаследовано от DependencyObject) |
GetValue(DependencyProperty) |
Возвращает текущее действующее значение свойства зависимостей из DependencyObject. (Унаследовано от DependencyObject) |
ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если задано локальное значение. (Унаследовано от DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Регистрирует функцию уведомления для прослушивания изменений определенного DependencyProperty в этом экземпляре DependencyObject . (Унаследовано от DependencyObject) |
SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей для Объекта DependencyObject. (Унаследовано от DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова Метода RegisterPropertyChangedCallback. (Унаследовано от DependencyObject) |