ThemeShadow 类

定义

ThemeShadow 是一种预配置的阴影效果,可应用于任何 XAML 元素,以基于 x、y、z 坐标适当绘制阴影。 ThemeShadow 还会根据其他环境规范自动进行调整:

  • 根据光线、用户主题、应用环境和外壳方面的变化进行调整。
  • 根据元素的提升自动隐藏元素。
  • 在元素移动和更改高度时使其保持同步。
  • 使阴影在整个应用程序中和不同的应用程序之间保持一致。
/// [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 ThemeShadow : Shadow
[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 ThemeShadow : Shadow
Public Class ThemeShadow
Inherits Shadow
继承
Object IInspectable DependencyObject Shadow ThemeShadow
属性

示例

提示

有关详细信息、设计指南和代码示例,请参阅 Z 深度和阴影

注解

提示

有关详细信息、设计指南和代码示例,请参阅 Z 深度和阴影

ThemeShadow 可以应用于任何 XAML 元素,以基于概念转换器 UIElement 和一个或多个接收器 UIElement 之间的相对 x、y 和 z 坐标绘制阴影,这些接收器 UIElement 将投射到这些对象上。

ThemeShadow 仅支持矩形阴影。 对于自定义阴影效果,可以使用 DropShadow

弹出窗口中的 ThemeShadows

在应用到弹出窗口中的任何 XAML 元素时,ThemeShadow 会自动投射阴影。 它会在其后面的应用背景内容上以及在其下面的任何其他已打开弹出窗口上投射阴影。

若要将 ThemeShadow 与 Popups 配合使用,请使用 UIElement.Shadow 属性将 ThemeShadow 应用于 XAML 元素。 然后,从它后面的其他元素提升元素,例如通过使用 UIElement.Translation 属性的 z 组件。 对于大多数弹出窗口 UI,相对于应用背景内容的建议默认提升值为 32 个有效像素。

其他元素中的 ThemeShadow

若要从不在 Popup 中的 XAML 元素投射阴影,必须显式指定可在 ThemeShadow.Receivers 集合中接收阴影的其他元素。 接收器不能是视觉树中投射器的上级。

ThemeShadow 的性能最佳做法

  1. 请将自定义接收器元素的数量限制为所需的最小值。

  2. 如果多个接收方元素处于相同的高程,则尝试通过面向单个父元素来合并它们。

  3. 如果多个元素将相同类型的阴影投射到相同的接收器元素,请将阴影添加为共享资源并重用它。

构造函数

ThemeShadow()

初始化 ThemeShadow 类的新实例。

属性

Dispatcher

始终在Windows 应用 SDK应用中返回 null 。 请改用 DispatcherQueue

(继承自 DependencyObject)
DispatcherQueue

获取 DispatcherQueue 与此 对象关联的 。 DispatcherQueue表示可以访问 DependencyObject UI 线程上的 的功能,即使代码是由非 UI 线程启动的。

(继承自 DependencyObject)
Receivers

获取此 ThemeShadow 强制转换的 UI 元素的集合。

方法

ClearValue(DependencyProperty)

清除依赖属性的本地值。

(继承自 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

返回为依赖属性建立的任何基值,该基值适用于动画未处于活动状态的情况。

(继承自 DependencyObject)
GetValue(DependencyProperty)

DependencyObject 返回依赖属性的当前有效值。

(继承自 DependencyObject)
ReadLocalValue(DependencyProperty)

如果设置了本地值,则返回依赖属性的本地值。

(继承自 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

注册一个通知函数,用于侦听此 DependencyObject 实例上特定 DependencyProperty 的更改。

(继承自 DependencyObject)
SetValue(DependencyProperty, Object)

设置 DependencyObject 上依赖属性的本地值。

(继承自 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

取消以前通过调用 RegisterPropertyChangedCallback 注册的更改通知。

(继承自 DependencyObject)

适用于

另请参阅