ThemeShadow 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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版本需求,請按一下這裡開啟應用程式,並查看 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 的效能最佳做法
將自訂接收者元素的數量限制為所需的最小值。
如果多個接收者元素的提高許可權相同,請嘗試改為以單一父元素為目標來合併它們。
如果多個元素將相同類型的陰影投射到相同的接收者元素上,則會將陰影新增為共用資源,並重複使用。
建構函式
ThemeShadow() |
初始化 ThemeShadow 類別的新實例。 |
屬性
Dispatcher |
取得與此物件相關聯的 CoreDispatcher 。 CoreDispatcher代表可以存取 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) |