Freigeben über


ThemeShadow Klasse

Definition

Ein ThemeShadow ist ein vorkonfigurierter Schatteneffekt, der auf jedes XAML-Element angewendet werden kann, um Schatten basierend auf x-, y- und z-Koordinaten entsprechend zu zeichnen. ThemeShadow passt sich außerdem automatisch an andere Umgebungsspezifikationen an:

  • Passt sich an Änderungen von Beleuchtung, Benutzerdesign, App-Umgebung und Shell an.
  • Schattiert Elemente automatisch basierend auf ihrer Höhe.
  • Hält Elemente bei Bewegungen und Änderungen der Hervorhebung synchron.
  • Hält Schatten innerhalb der Anwendung und anwendungsübergreifend konsistent.
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 524288)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ThemeShadow : Shadow
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 524288)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class ThemeShadow : Shadow
Public Class ThemeShadow
Inherits Shadow
Vererbung
Object IInspectable DependencyObject Shadow ThemeShadow
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10, version 1903 (eingeführt in 10.0.18362.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v8.0)

Beispiele

Tipp

Weitere Informationen, Entwurfsanleitungen und Codebeispiele finden Sie unter Z-Tiefe und Schatten.

Viele gängige Steuerelemente werfen mithilfe von ThemeShadow automatisch Schatten.

Wenn Sie die WinUI 2-Katalog-App installiert haben und die oben genannten Mindestanforderungen für Windows 10 Version erfüllen, klicken Sie hier, um die App zu öffnen und ThemeShadow in Aktion für allgemeine Steuerelemente zu sehen.

Hinweise

Tipp

Weitere Informationen, Entwurfsanleitungen und Codebeispiele finden Sie unter Z-Tiefe und Schatten.

Ein ThemeShadow kann auf jedes XAML-Element angewendet werden, um Schatten basierend auf den relativen x-, y- und z-Koordinaten zwischen einem uiElement der konzeptionellen Caster und einem oder mehreren Empfänger-UIElements zu zeichnen, auf denen der Schatten des Casters auf ihnen gerendert wird.

ThemeShadow unterstützt nur rechteckige Schatten. Für benutzerdefinierte Schatteneffekte können Sie dropShadow verwenden.

ThemeShadows in Popups

ThemeShadow wirft automatisch Schatten, wenn es auf ein beliebiges XAML-Element in einem Popup angewendet wird. Es wirft Schatten auf die Hintergrundinhalte der App hinter ihm und alle anderen geöffneten Popups unter ihm.

Um ThemeShadow mit Popups zu verwenden, verwenden Sie die UIElement.Shadow-Eigenschaft , um ein ThemeShadow auf ein XAML-Element anzuwenden. Erhöhen Sie dann das Element aus anderen Elementen dahinter, z. B. mithilfe der z-Komponente der UIElement.Translation-Eigenschaft . Für den größten Teil von Popup-UI beträgt die empfohlene Standardhervorhebung relativ zum Inhalt des App-Hintergrunds 32 effektive Pixel.

ThemeShadow in anderen Elementen

Um einen Schatten aus einem XAML-Element zu werfen, das sich nicht in einem Popup befindet, müssen Sie explizit die anderen Elemente angeben, die den Schatten in der ThemeShadow.Receivers-Auflistung empfangen können. Als Empfänger kommt kein Vorgänger des werfenden Elements in der visuellen Baumstruktur in Frage.

Bewährte Methoden zur Leistungssteigerung für ThemeShadow

  1. Schränken Sie die Anzahl der benutzerdefinierten Empfängerelemente auf das erforderliche Minimum ein.

  2. Wenn sich mehrere Empfängerelemente auf derselben Höhe befinden, versuchen Sie, sie zu kombinieren, indem Sie stattdessen ein einzelnes übergeordnetes Element verwenden.

  3. Wenn mehrere Elemente die gleiche Art Schatten auf die gleichen Empfängerelemente werfen, fügen Sie den Schatten als freigegebene Ressource hinzu, und verwenden Sie ihn erneut.

Konstruktoren

ThemeShadow()

Initialisiert eine neue instance der ThemeShadow-Klasse.

Eigenschaften

Dispatcher

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

(Geerbt von DependencyObject)
Receivers

Ruft eine Auflistung von Ui-Elementen ab, für die dieser ThemeShadow umgewandelt wird.

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 eingerichtet wurde, der in Fällen gilt, in denen eine Animation nicht aktiv ist.

(Geerbt von DependencyObject)
GetValue(DependencyProperty)

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

(Geerbt von DependencyObject)
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 durch Aufrufen von RegisterPropertyChangedCallback registriert wurde.

(Geerbt von DependencyObject)

Gilt für:

Weitere Informationen