Partager via


SystemBackdrop.OnDefaultSystemBackdropConfigurationChanged Méthode

Définition

Remplacez cette méthode à appeler lorsque l’objet retourné par GetDefaultSystemBackdropConfiguration change. Cela est utile si vous utilisez un personnalisé 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)

Paramètres

target
ICompositionSupportsSystemBackdrop

Cible de la toile de fond.

xamlRoot
XamlRoot

Racine XAML de la cible en arrière-plan.

Exemples

Cet exemple montre une classe de toile de fond système personnalisée implémentée à l’aide de MicaController. La OnDefaultSystemBackdropConfigurationChanged méthode est remplacée et, dans celle-ci, la configuration Theme est définie pour être toujours légère.

Par exemple, si le thème système passe de Clair à Sombre pendant l’exécution de l’application, cette méthode est appelée et le thème de fond est redevenir Clair au lieu de passer à Sombre avec le thème système.

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

Remarques

Cette méthode est utile lorsque vous implémentez un SystemBackdropConfiguration personnalisé qui intègre certains états de propriété suivis, mais qui est différent de la stratégie par défaut.

Au lieu d’appliquer la configuration de fond par défaut obtenue à partir de GetDefaultSystemBackdropConfiguration (en la transmettant à SetSystemBackdropConfiguration), remplacez OnDefaultSystemBackdropConfigurationChanged. En cas de modification de la stratégie par défaut (comme lorsqu’un utilisateur change le thème système de Clair à Sombre), cette méthode est appelée. Dans cette méthode, créez un objet SystemBackdropConfiguration et définissez ses propriétés en fonction des besoins. Passez ensuite le modifié SystemBackdropConfiguration à SetSystemBackdropConfiguration.

S’applique à