SystemBackdrop.OnDefaultSystemBackdropConfigurationChanged 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
覆寫這個方法,以在變更傳 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)
參數
底板的目標。
- 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。