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版本需求,請按一下這裡開啟應用程式,並查看 Common 控制項上的 ThemeShadow 運作情形

備註

提示

如需詳細資訊、設計指引和程式碼範例,請參閱 Z 深度和陰影

ThemeShadow 可以套用至任何 XAML 元素,根據概念轉換器 UIElement 與一或多個接收者 UIElement 之間的相對 x、y 和 z 座標來繪製陰影,而這些接收者 UIElement 具有轉譯工具的陰影。

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

取得與此物件相關聯的 CoreDispatcherCoreDispatcher代表可以存取 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)

適用於

另請參閱