語言

SystemBackdrop 類別

定義

用於渲染雲母和壓克力等材質的自訂系統背景的基底類別。

public ref class SystemBackdrop : DependencyObject
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SystemBackdrop : DependencyObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class SystemBackdrop : DependencyObject
Public Class SystemBackdrop
Inherits DependencyObject
繼承
Object Platform::Object IInspectable DependencyObject SystemBackdrop
衍生
屬性

範例

這個範例展示了一個使用 MicaController 實作的自訂系統背景類別。

呼叫基礎 OnTargetConnected 方法會初始化 GetDefaultSystemBackdropConfiguration 回傳的預設配置物件,以反映影響此 SystemBackdrop 實例的環境變更(由 connectedTarget, XamlRoot)。

雖然本頁範例不支援共享 MicaSystemBackdrop 實例(例如), Window1.SystemBackdrop = Window2.SystemBackdrop = myMicaSystemBackdrop但此類分享是可行的,且由內建 MicaBackdrop 與 DesktopAcrylicBackdrop 材質所支援。 若要在自訂材質中實現共享,請將背後的 ISystemBackdropController 儲存向量化,為每個使用情境保留獨立實例(例如,透過以 connectedTarget為鍵的映射)。 請注意,SystemBackdropGetDefaultSystemBackdropConfiguration 會向量化相關的預設設定物件,確保配置在分享時SystemBackdrop反映每個使用情境。

<Window
    ... >
    <Window.SystemBackdrop>
        <local:MicaSystemBackdrop/>
    </Window.SystemBackdrop>

    <!-- XAML content -->

</Window>
public class MicaSystemBackdrop : SystemBackdrop
{
    MicaController micaController;

    protected override void OnTargetConnected(ICompositionSupportsSystemBackdrop connectedTarget, XamlRoot xamlRoot)
    {
        // Call the base method to initialize the default configuration object.
        base.OnTargetConnected(connectedTarget, xamlRoot);

        // This example does not support sharing MicaSystemBackdrop instances.
        if (micaController is not null)
        {
            throw new Exception("This controller cannot be shared");
        }

        micaController = new MicaController();
        // Set configuration.
        SystemBackdropConfiguration defaultConfig = GetDefaultSystemBackdropConfiguration(connectedTarget, xamlRoot);
        micaController.SetSystemBackdropConfiguration(defaultConfig);
        // Add target.
        micaController.AddSystemBackdropTarget(connectedTarget);
    }

    protected override void OnTargetDisconnected(ICompositionSupportsSystemBackdrop disconnectedTarget)
    {
        base.OnTargetDisconnected(disconnectedTarget);

        micaController.RemoveSystemBackdropTarget(disconnectedTarget);
        micaController = null;
    }
}

備註

利用此類別建立自訂系統背景。 你不會直接建立這個類別(注意受保護的建構子)。 相反地,可以子職化它,這樣才能加入你自己的支援。 你也可以使用內建的衍生類別之一,如 MicaBackdrop 和 DesktopAcrylicBackdrop。

一般來說,自訂材質會覆寫 OnTargetConnected ,來建立並設定一個 ISystemBackdropController,負責管理用來填滿背景區域的 CompositionBrush 。 畫筆的最終像素渲染受以下因素影響:

內建控制器(MicaController 與 DesktopAcrylicController)支援以下參數以自訂外觀:FallbackColor、、 LuminosityOpacityTintColorTintOpacity、 。 內建系統背景(MicaBackdrop 和 DesktopAcrylicBackdrop)不會顯示 FallbackColor 材質自訂屬性(TintOpacity等等)。 相反地,它們依賴底層 MicaController 和 DesktopAcrylicController的預設光暗配置。 要自訂這些屬性,請建立一個自訂材質類別,從這些屬性衍生 SystemBackdrop 並公開所需屬性。

建構函式

名稱 Description
SystemBackdrop()

初始化 SystemBackdrop 類別的新執行個體。

屬性

名稱 Description
Dispatcher

它總是在 Windows 應用程式 SDK 應用程式中回傳 null 。 改用 DispatcherQueue 。

(繼承來源 DependencyObject)
DispatcherQueue

得到 DispatcherQueue 這個物件所關聯的那個。 代表 DispatcherQueue 一個功能,即使程式碼是由非 UI 執行緒發起,也能存取 UI DependencyObject 執行緒。

(繼承來源 DependencyObject)

方法

名稱 Description
ClearValue(DependencyProperty)

清除依賴性財產的局部價值。

(繼承來源 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

回傳任何為相依屬性建立的基礎值,適用於動畫未啟用時。

(繼承來源 DependencyObject)
GetDefaultSystemBackdropConfiguration(ICompositionSupportsSystemBackdrop, XamlRoot)

取得 SystemBackdropConfiguration 一個預設物件,可以傳遞給 ISystemBackdropControllerWithTargets.SetSystemBackdropConfiguration。

GetValue(DependencyProperty)

回傳 DependencyObject 中相依屬性的當前有效值。

(繼承來源 DependencyObject)
OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop, XamlRoot)

當物件回傳 GetDefaultSystemBackdropConfiguration 時,覆蓋此方法。 如果你用的是自訂 SystemBackdropConfiguration的 .

OnTargetConnected(ICompositionSupportsSystemBackdrop, XamlRoot)

當該物件附加到有效容器時呼叫;例如,當設定為 Window.SystemBackdrop時。

OnTargetDisconnected(ICompositionSupportsSystemBackdrop)

當該物件從容器中清除時呼叫。

ReadLocalValue(DependencyProperty)

若設定了本地值,則回傳依賴性質的局部值。

(繼承來源 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

註冊一個通知函式,用於監聽此 DependencyObject 實例中特定 DependencyProperty 的變更。

(繼承來源 DependencyObject)
SetValue(DependencyProperty, Object)

將相依屬性的局部值設定在 DependencyObject 上。

(繼承來源 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

取消先前透過呼叫 RegisterPropertyChangedCallback 註冊的變更通知。

(繼承來源 DependencyObject)

適用於

另請參閱