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 に変更された場合、このメソッドが呼び出され、背景テーマはシステム テーマで [濃色] に変更されるのではなく、Light に戻されます。
<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 を 実装する場合に便利です。
GetDefaultSystemBackdropConfiguration (SetSystemBackdropConfiguration に渡すことによって) から取得した既定の背景構成を適用する代わりに、 をオーバーライドしますOnDefaultSystemBackdropConfigurationChanged
。 既定のポリシーに変更がある場合 (ユーザーがシステム テーマを Light から Dark に変更した場合など)、このメソッドが呼び出されます。 このメソッドでは、新しい SystemBackdropConfiguration オブジェクトを作成し、必要に応じてプロパティを設定します。 次に、変更した SystemBackdropConfiguration
を SetSystemBackdropConfiguration に渡します。