ThemeShadow 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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
- 繼承
- 屬性
範例
Tip
更多資訊、設計指導和程式碼範例,請參見 Z 深度與陰影。
備註
Tip
更多資訊、設計指導和程式碼範例,請參見 Z 深度與陰影。
ThemeShadow 可以套用到任何 XAML 元素,根據概念施法者 UIElement 與一個或多個接收者 UIElement 之間的相對 x、y、z 座標繪製陰影。
ThemeShadow 僅支援矩形陰影。 自訂陰影效果可以用 DropShadow。
彈出視窗中的主題陰影
當在彈出視窗中套用任何 XAML 元素時,ThemeShadow 會自動投射陰影。 它會在背後的應用程式背景內容以及下方其他開啟的彈出視窗投下陰影。
若要使用 ThemeShadow 搭配彈出視窗,請使用 UIElement.Shadow 屬性將 ThemeShadow 套用到 XAML 元素。 接著,將該元素從後方其他元素中升格,例如利用 UIElement.Translation 屬性中的 z 元件。 大多數彈出式介面的建議預設高度相對於應用程式背景內容的有效高度是 32 像素。
其他元素中的主題陰影
若要從不在 彈出視窗中的 XAML 元素投射陰影,必須明確指定 ThemeShadow.Receivers 集合中其他可接收陰影的元素。 接收者不能是視覺樹中發送者的祖先。
ThemeShadow 的效能最佳實務
將自訂接收元件數量限制在必要的最低標準。
如果多個接收元件高度相同,則嘗試將它們合併,針對單一母元件。
如果多個元素會將相同類型的陰影投射到相同的接收元件上,那就把該陰影加成共用資源並重複使用。
建構函式
| 名稱 | Description |
|---|---|
| ThemeShadow() |
初始化一個新的 ThemeShadow 類別實例。 |
屬性
| 名稱 | Description |
|---|---|
| Dispatcher |
它總是在 Windows 應用程式 SDK 應用程式中回傳 |
| DispatcherQueue |
得到 |
| Receivers |
會獲得一組 UI 元素,這個主題陰影會被施放在上面。 |
方法
| 名稱 | Description |
|---|---|
| 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) |