Compartir a través de


SystemBackdrop.OnDefaultSystemBackdropConfigurationChanged Método

Definición

Invalide este método al que se llamará cuando cambie el objeto devuelto por GetDefaultSystemBackdropConfiguration . Esto es útil si usa un personalizado 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)

Parámetros

target
ICompositionSupportsSystemBackdrop

El objetivo del telón de fondo.

xamlRoot
XamlRoot

Raíz XAML del destino de fondo.

Ejemplos

En este ejemplo se muestra una clase de fondo del sistema personalizada que se implementa mediante MicaController. El OnDefaultSystemBackdropConfigurationChanged método se invalida y, en él, la configuración Theme se establece en siempre ligera.

Por ejemplo, si el tema del sistema cambia de Claro a Oscuro mientras se ejecuta la aplicación, se llama a este método y el tema de fondo se establece en Claro en lugar de cambiar a Oscuro con el tema del sistema.

<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);
    }
}

Comentarios

Este método es útil cuando se implementa una systemBackdropConfiguration personalizada que incorpora algunos de los estados de propiedad de seguimiento, pero es diferente de alguna manera de la directiva predeterminada.

En lugar de aplicar la configuración de fondo predeterminada obtenida de GetDefaultSystemBackdropConfiguration (pasandola a SetSystemBackdropConfiguration), invalide OnDefaultSystemBackdropConfigurationChanged. Cuando hay un cambio en la directiva predeterminada (por ejemplo, cuando un usuario cambia el tema del sistema de Claro a Oscuro), se llama a este método. En este método, cree un nuevo objeto SystemBackdropConfiguration y establezca sus propiedades según sea necesario. A continuación, pase el modificado SystemBackdropConfiguration a SetSystemBackdropConfiguration.

Se aplica a