SystemBackdrop Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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 = myMicaSystemBackdrop
B. ), 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 connectedTarget
schlü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:
- der Umgebungs-/Richtliniensatz über SystemBackdropConfiguration
- die Darstellungsparameter des Materials, die über allgemeine Eigenschaften wie ISystemBackdropControllerWithTargets.State (
Active
/Fallback
/HighContrast
) und materialspezifische Eigenschaften wie MicaController.Kind () verfügbar gemacht werden.Base
/BaseAlt
Die integrierten Controller (MicaController und DesktopAcrylicController) unterstützen die folgenden Parameter zum Anpassen ihrer Darstellung: FallbackColor
, LuminosityOpacity
, TintColor
und TintOpacity
. Die integrierten Systemkulissen (MicaBackdrop und DesktopAcrylicBackdrop) machen oder die Materialanpassungseigenschaften (TintOpacity
usw.) 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 |
Eigenschaften
Dispatcher |
Gibt immer in einer Windows App SDK-App zurück |
DispatcherQueue |
Ruft den |
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 |
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 |
OnTargetConnected(ICompositionSupportsSystemBackdrop, XamlRoot) |
Wird aufgerufen, wenn dieses Objekt an einen gültigen Container angefügt ist; Beispielsweise, wenn auf festgelegt wird |
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) |