SystemBackdrop 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
用於渲染雲母和壓克力等材質的自訂系統背景的基底類別。
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
- 繼承
- 衍生
- 屬性
範例
這個範例展示了一個使用 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 。 畫筆的最終像素渲染受以下因素影響:
- 透過 SystemBackdropConfiguration 設定的環境/政策
- 材質的外觀參數,透過一般屬性如 ISystemBackdropControllerWithTargets.State (
Active//FallbackHighContrast) 以及材質專屬屬性如 MicaController.Kind (Base/BaseAlt) 暴露。
內建控制器(MicaController 與 DesktopAcrylicController)支援以下參數以自訂外觀:FallbackColor、、 LuminosityOpacityTintColorTintOpacity、 。 內建系統背景(MicaBackdrop 和 DesktopAcrylicBackdrop)不會顯示 FallbackColor 材質自訂屬性(TintOpacity等等)。 相反地,它們依賴底層 MicaController 和 DesktopAcrylicController的預設光暗配置。 要自訂這些屬性,請建立一個自訂材質類別,從這些屬性衍生 SystemBackdrop 並公開所需屬性。
建構函式
| 名稱 | Description |
|---|---|
| SystemBackdrop() |
初始化 |
屬性
| 名稱 | Description |
|---|---|
| Dispatcher |
它總是在 Windows 應用程式 SDK 應用程式中回傳 |
| DispatcherQueue |
得到 |