共用方式為


SystemBackdrop.OnDefaultSystemBackdropConfigurationChanged 方法

定義

覆寫這個方法,以在變更傳 GetDefaultSystemBackdropConfiguration 回的物件時呼叫。 如果您使用自定義 SystemBackdropConfiguration,這會很有用。

protected:
 virtual void OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop ^ target, XamlRoot ^ xamlRoot) = OnDefaultSystemBackdropConfigurationChanged;
void OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop const& target, XamlRoot const& xamlRoot);
protected virtual void OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop target, XamlRoot xamlRoot);
function onDefaultSystemBackdropConfigurationChanged(target, xamlRoot)
Protected Overridable Sub OnDefaultSystemBackdropConfigurationChanged (target As ICompositionSupportsSystemBackdrop, xamlRoot As XamlRoot)

參數

target
ICompositionSupportsSystemBackdrop

底板的目標。

xamlRoot
XamlRoot

基底目標的 XAML 根目錄。

範例

此範例示範使用 MicaController實作的自定義系統基底類別。 系統會 OnDefaultSystemBackdropConfigurationChanged 覆寫 方法,並在其中設定 Theme 為一律為淺色。

例如,如果系統主題在應用程式執行時從淺色變更為深色,則會呼叫此方法,而背景主題會設定回 Light,而不是使用系統主題變更為 Dark。

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

    <!-- XAML content -->

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

    protected override void OnTargetConnected(ICompositionSupportsSystemBackdrop connectedTarget, XamlRoot xamlRoot)
    {
        base.OnTargetConnected(connectedTarget, xamlRoot);

        if (micaController is not null)
        {
            throw new Exception("This controller cannot be shared");
        }

        micaController = new MicaController();
        //_ = GetDefaultSystemBackdropConfiguration(connectedTarget, xamlRoot);

        micaController.AddSystemBackdropTarget(connectedTarget);
    }

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

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

    protected override void OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop target, XamlRoot xamlRoot)
    {
        SystemBackdropConfiguration config = new SystemBackdropConfiguration();
        config.Theme = SystemBackdropTheme.Light;

        micaController.SetSystemBackdropConfiguration(config);
    }
}

備註

當您實作自定義 SystemBackdropConfiguration 時,此方法很有用,其中包含部分追蹤的屬性狀態,但與默認原則不同。

透過將它傳遞至 SetSystemBackdropConfiguration () ,而不是套用從 GetDefaultSystemBackdropConfiguration 取得的預設基底設定,請覆寫 OnDefaultSystemBackdropConfigurationChanged。 當使用者將系統主題從淺色變更為深色) 時,默認原則 (變更時,就會呼叫此方法。 在此方法中,建立新的 SystemBackdropConfiguration 物件,並視需要設定其屬性。 然後將修改 SystemBackdropConfiguration 的 傳遞至 SetSystemBackdropConfiguration

適用於