Freigeben über


SystemBackdrop Klasse

Definition

Basisklasse für benutzerdefinierte Systemkulissen, die zum Rendern von Materialien wie Mica und Acryl verwendet werden.

public ref class SystemBackdrop : DependencyObject
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SystemBackdrop : DependencyObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class SystemBackdrop : DependencyObject
Public Class SystemBackdrop
Inherits DependencyObject
Vererbung
Object Platform::Object IInspectable DependencyObject SystemBackdrop
Abgeleitet
Attribute

Beispiele

Dieses Beispiel zeigt eine benutzerdefinierte Systemhintergrundklasse, die mit MicaController implementiert wird.

Durch Aufrufen der OnTargetConnected-Basismethode wird das standardkonfigurationsobjekt initialisiert, das von GetDefaultSystemBackdropConfiguration zurückgegeben wird, um Umgebungsänderungen widerzuspiegeln, die sich auf diese SystemBackdrop instance auswirken (angegeben durch connectedTarget, XamlRoot).

Obwohl das Beispiel auf dieser Seite keine Freigabeinstanzen MicaSystemBackdrop unterstützt (z. Window1.SystemBackdrop = Window2.SystemBackdrop = myMicaSystemBackdropB. ), ist eine solche Freigabe möglich und wird von den integrierten MicaBackdrop Und DesktopAcrylicBackdrop Materialien unterstützt. Um die Freigabe in einem benutzerdefinierten Material zu implementieren, vektorisieren Sie den unterstützenden ISystemBackdropController-Speicher, um einen separaten instance für jeden Nutzungskontext beizubehalten (z. B. über eine Karte, die auf connectedTargetschlüsselt ist). Beachten Sie, dass auf SystemBackdrop ähnliche Weise die zugehörigen Standardkonfigurationsobjekte vektorisiert werden, die von GetDefaultSystemBackdropConfiguration zurückgegeben werden, um sicherzustellen, dass die Konfiguration jeden Verwendungskontext widerspiegelt, wenn SystemBackdrop freigegeben wird.

<Window
    ... >
    <Window.SystemBackdrop>
        <local:MicaSystemBackdrop/>
    </Window.SystemBackdrop>

    <!-- XAML content -->

</Window>
public class MicaSystemBackdrop : SystemBackdrop
{
    MicaController micaController;

    protected override void OnTargetConnected(ICompositionSupportsSystemBackdrop connectedTarget, XamlRoot xamlRoot)
    {
        // Call the base method to initialize the default configuration object.
        base.OnTargetConnected(connectedTarget, xamlRoot);

        // This example does not support sharing MicaSystemBackdrop instances.
        if (micaController is not null)
        {
            throw new Exception("This controller cannot be shared");
        }

        micaController = new MicaController();
        // Set configuration.
        SystemBackdropConfiguration defaultConfig = GetDefaultSystemBackdropConfiguration(connectedTarget, xamlRoot);
        micaController.SetSystemBackdropConfiguration(defaultConfig);
        // Add target.
        micaController.AddSystemBackdropTarget(connectedTarget);
    }

    protected override void OnTargetDisconnected(ICompositionSupportsSystemBackdrop disconnectedTarget)
    {
        base.OnTargetDisconnected(disconnectedTarget);

        micaController.RemoveSystemBackdropTarget(disconnectedTarget);
        micaController = null;
    }
}

Hinweise

Verwenden Sie diese Klasse, um eine benutzerdefinierte Systemkulisse zu erstellen. Sie erstellen diese Klasse nicht direkt (beachten Sie den geschützten Konstruktor). Unterklassen Sie sie stattdessen, um Ihren benutzerdefinierten Support hinzuzufügen. Sie können auch eine der integrierten abgeleiteten Klassen MicaBackdrop und DesktopAcrylicBackdrop verwenden.

Im Allgemeinen überschreibt das benutzerdefinierte Material OnTargetConnected , um einen unterstützenden ISystemBackdropController zu erstellen und zu konfigurieren, der den CompositionBrush verwaltet, der zum Füllen des Hintergrundbereichs verwendet wird. Das ultimative Pixelrendering des Pinsels wirkt sich auf Folgendes aus:

Die integrierten Controller (MicaController und DesktopAcrylicController) unterstützen die folgenden Parameter zum Anpassen ihrer Darstellung: FallbackColor, LuminosityOpacity, TintColorund TintOpacity. Die integrierten Systemkulissen (MicaBackdrop und DesktopAcrylicBackdrop) machen oder die Materialanpassungseigenschaften (TintOpacityusw.) nicht verfügbarFallbackColor. Stattdessen basieren sie auf den Standardkonfigurationen Hell/Dunkel der zugrunde liegenden MicaController und DesktopAcrylicController. Um diese Eigenschaften anzupassen, erstellen Sie eine benutzerdefinierte Materialklasse, die von abgeleitet wird SystemBackdrop , und machen Sie die gewünschten Eigenschaften verfügbar.

Konstruktoren

SystemBackdrop()

Initialisiert eine neue Instanz der SystemBackdrop-Klasse.

Eigenschaften

Dispatcher

Gibt immer in einer Windows App SDK-App zurücknull. Verwenden Sie stattdessen DispatcherQueue .

(Geerbt von DependencyObject)
DispatcherQueue

Ruft den DispatcherQueue ab, dem dieses Objekt zugeordnet ist. Stellt DispatcherQueue eine Funktion dar, die auf den DependencyObject im UI-Thread zugreifen kann, auch wenn der Code von einem Nicht-UI-Thread initiiert wird.

(Geerbt von DependencyObject)

Methoden

ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Abhängigkeitseigenschaft.

(Geerbt von DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Gibt einen beliebigen Basiswert zurück, der für eine Abhängigkeitseigenschaft festgelegt wurde, was in Fällen gilt, in denen eine Animation nicht aktiv ist.

(Geerbt von DependencyObject)
GetDefaultSystemBackdropConfiguration(ICompositionSupportsSystemBackdrop, XamlRoot)

Ruft ein Standardobjekt SystemBackdropConfiguration ab, das an ISystemBackdropControllerWithTargets.SetSystemBackdropConfigurationübergeben werden kann.

GetValue(DependencyProperty)

Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft aus einem DependencyObject zurück.

(Geerbt von DependencyObject)
OnDefaultSystemBackdropConfigurationChanged(ICompositionSupportsSystemBackdrop, XamlRoot)

Überschreiben Sie diese Methode, die aufgerufen werden soll, wenn sich das von zurückgegebene GetDefaultSystemBackdropConfiguration Objekt ändert. Dies ist nützlich, wenn Sie einen benutzerdefinierten SystemBackdropConfigurationverwenden.

OnTargetConnected(ICompositionSupportsSystemBackdrop, XamlRoot)

Wird aufgerufen, wenn dieses Objekt an einen gültigen Container angefügt ist; Beispielsweise, wenn auf festgelegt wird Window.SystemBackdrop.

OnTargetDisconnected(ICompositionSupportsSystemBackdrop)

Wird aufgerufen, wenn dieses Objekt aus seinem Container gelöscht wird.

ReadLocalValue(DependencyProperty)

Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn ein lokaler Wert festgelegt ist.

(Geerbt von DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registriert eine Benachrichtigungsfunktion zum Lauschen auf Änderungen an einer bestimmten DependencyProperty für dieses DependencyObject-instance.

(Geerbt von DependencyObject)
SetValue(DependencyProperty, Object)

Legt den lokalen Wert einer Abhängigkeitseigenschaft für ein DependencyObject fest.

(Geerbt von DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Bricht eine Änderungsbenachrichtigung ab, die zuvor registriert wurde, indem RegisterPropertyChangedCallback aufgerufen wurde.

(Geerbt von DependencyObject)

Gilt für:

Weitere Informationen