Freigeben über


SystemBackdrop.OnDefaultSystemBackdropConfigurationChanged Methode

Definition

Überschreiben Sie diese Methode, die aufgerufen werden soll, wenn das Objekt von GetDefaultSystemBackdropConfiguration Änderungen zurückgegeben wird. Dies ist nützlich, wenn Sie eine benutzerdefinierte SystemBackdropConfigurationverwenden.

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)

Parameter

target
ICompositionSupportsSystemBackdrop

Das Ziel des Hintergrunds.

xamlRoot
XamlRoot

Der XAML-Stamm des Hintergrundziels.

Beispiele

Dieses Beispiel zeigt eine benutzerdefinierte Systemhintergrundklasse, die mit MicaController implementiert wird. Die OnDefaultSystemBackdropConfigurationChanged -Methode wird überschrieben, und in ihr ist die Konfiguration Theme so festgelegt, dass sie immer leicht ist.

Wenn das Systemdesign beispielsweise während der Ausführung der App von Hell in Dunkel geändert wird, wird diese Methode aufgerufen, und das Hintergrunddesign wird auf Hell zurückgesetzt, anstatt mit dem Systemdesign auf Dunkel zu wechseln.

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

Hinweise

Diese Methode ist nützlich, wenn Sie eine benutzerdefinierte SystemBackdropConfiguration implementieren, die einige der nachverfolgten Eigenschaftszustände enthält, sich jedoch in irgendeiner Weise von der Standardrichtlinie unterscheidet.

Anstatt die von GetDefaultSystemBackdropConfiguration abgerufene Standardhintergrundkonfiguration anzuwenden (durch Übergabe an SetSystemBackdropConfiguration), überschreiben OnDefaultSystemBackdropConfigurationChangedSie . Wenn eine Änderung an der Standardrichtlinie erfolgt (z. B. wenn ein Benutzer das Systemdesign von Hell in Dunkel ändert), wird diese Methode aufgerufen. Erstellen Sie in dieser Methode ein neues SystemBackdropConfiguration-Objekt , und legen Sie die Eigenschaften nach Bedarf fest. Übergeben Sie dann die geänderte SystemBackdropConfiguration an SetSystemBackdropConfiguration.

Gilt für: