Поделиться через


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
Наследование
Object IInspectable DependencyObject Shadow ThemeShadow
Атрибуты

Требования к 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

  1. Ограничьте количество настраиваемых принимающих элементов до необходимого минимума.

  2. Если несколько элементов-получателей находятся на одной высоте, попробуйте объединить их, нацелив на один родительский элемент.

  3. Если несколько элементов будут отбрасывать тени одного и того же типа на одни и те же принимающие элементы, то добавьте тень в качестве общего ресурса и повторно используйте ее.

Конструкторы

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)

Применяется к

См. также раздел