Condividi tramite


SystemBackdrop.OnDefaultSystemBackdropConfigurationChanged Metodo

Definizione

Eseguire l'override di questo metodo da chiamare quando l'oggetto restituito dalle GetDefaultSystemBackdropConfiguration modifiche. Ciò è utile se si usa un oggetto personalizzato 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)

Parametri

target
ICompositionSupportsSystemBackdrop

Destinazione dello sfondo.

xamlRoot
XamlRoot

Radice XAML della destinazione dello sfondo.

Esempio

Questo esempio mostra una classe di sfondo del sistema personalizzata implementata con MicaController. Il OnDefaultSystemBackdropConfigurationChanged metodo viene sottoposto a override e in essa la configurazione Theme è impostata per essere sempre leggera.

Ad esempio, se il tema di sistema viene modificato da Chiaro a Scuro mentre l'app è in esecuzione, questo metodo viene chiamato e il tema dello sfondo viene impostato su Chiaro anziché passare a Scuro con il tema di 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);
    }
}

Commenti

Questo metodo è utile quando si implementa un systemBackdropConfiguration personalizzato che incorpora alcuni stati della proprietà rilevata, ma è diverso in qualche modo rispetto ai criteri predefiniti.

Anziché applicare la configurazione dello sfondo predefinita ottenuta da GetDefaultSystemBackdropConfiguration (passandola a SetSystemBackdropConfiguration), eseguire l'override OnDefaultSystemBackdropConfigurationChangeddi . Quando viene apportata una modifica al criterio predefinito , ad esempio quando un utente modifica il tema di sistema da Chiaro a Scuro, viene chiamato questo metodo. In questo metodo creare un nuovo oggetto SystemBackdropConfiguration e impostarne le proprietà in base alle esigenze. Passare quindi l'oggetto modificato SystemBackdropConfiguration a SetSystemBackdropConfiguration.

Si applica a