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 坐標繪製陰影的陰影。

ThemeShadow 僅支援矩形陰影。 針對自定義陰影效果,您可以使用 DropShadow

Popups 中的 ThemeShadows

當套用至快顯中的任何 XAML 元素時,ThemeShadow 會自動投射陰影。 它會在後方的應用程式背景內容以及下方其他任何開啟的快顯上,投射陰影。

若要搭配 Popups 使用 ThemeShadow,請使用 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表示即使程式代碼是由非UI線程起始,也可以存取 DependencyObject 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)

適用於

另請參閱