SystemBackdrop 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
用來轉譯Mica和壓克力等材質的自定義系統基類。
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實作的自定義系統基底類別。
呼叫base OnTargetConnected 方法會初始化 GetDefaultSystemBackdropConfiguration 傳回的預設組態物件,以反映影響此 SystemBackdrop
實例的環境變更,) 所 connectedTarget, XamlRoot
指定的 (。
雖然此頁面上的範例不支援共用 MicaSystemBackdrop
實例 (例如, Window1.SystemBackdrop = Window2.SystemBackdrop = myMicaSystemBackdrop
) ,但內建 MicaBackdrop
和 DesktopAcrylicBackdrop
材質可支援這類共用。 若要在自定義材質中實作共用,請向量化支援 ISystemBackdropController 記憶體,以針對每個使用 (內容保留個別的實例,例如,透過) 上的 connectedTarget
地圖索引鍵。 請注意,同樣地,SystemBackdrop
會將 GetDefaultSystemBackdropConfiguration 傳回的相關聯預設組態物件向量化,確保設定會在共享時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
HighContrast
//Fallback
() 和類似 MicaController.KindBase
/BaseAlt
() 等一般屬性公開。
內建控制器 (MicaController 和 DesktopAcrylicController) 支援下列參數來自定義其外觀: FallbackColor
、 LuminosityOpacity
、 TintColor
和 TintOpacity
。 內建系統 (MicaBackdrop 和 DesktopAcrylicBackdrop) 不會公開 FallbackColor
或材料自定義屬性 (TintOpacity
等) 。 相反地,它們依賴基礎 MicaController
和 DesktopAcrylicController
的默認淺色/深色組態。 若要自定義這些屬性,請建立衍生自 SystemBackdrop
的自定義材質類別,並公開所需的屬性。
建構函式
SystemBackdrop() |
初始化 |
屬性
Dispatcher |
一律會在 Windows 應用程式 SDK 應用程式中傳回 |
DispatcherQueue |
|