Style Klasse

Definition

Ermöglicht die gemeinsame Nutzung von Eigenschaften, Ressourcen und Ereignishandlern zwischen Instanzen eines Typs.

public ref class Style : System::Windows::Threading::DispatcherObject, System::Windows::Markup::IAddChild, System::Windows::Markup::INameScope
public ref class Style : System::Windows::Threading::DispatcherObject, System::Windows::Markup::IAddChild, System::Windows::Markup::INameScope, System::Windows::Markup::IQueryAmbient
[System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)]
[System.Windows.Markup.ContentProperty("Setters")]
[System.Windows.Markup.DictionaryKeyProperty("TargetType")]
public class Style : System.Windows.Threading.DispatcherObject, System.Windows.Markup.IAddChild, System.Windows.Markup.INameScope
[System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)]
[System.Windows.Markup.ContentProperty("Setters")]
[System.Windows.Markup.DictionaryKeyProperty("TargetType")]
public class Style : System.Windows.Threading.DispatcherObject, System.Windows.Markup.IAddChild, System.Windows.Markup.INameScope, System.Windows.Markup.IQueryAmbient
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.DictionaryKeyProperty("TargetType")>]
type Style = class
    inherit DispatcherObject
    interface INameScope
    interface IAddChild
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.DictionaryKeyProperty("TargetType")>]
type Style = class
    inherit DispatcherObject
    interface INameScope
    interface IAddChild
    interface IQueryAmbient
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.DictionaryKeyProperty("TargetType")>]
type Style = class
    inherit DispatcherObject
    interface IAddChild
    interface INameScope
    interface IQueryAmbient
Public Class Style
Inherits DispatcherObject
Implements IAddChild, INameScope
Public Class Style
Inherits DispatcherObject
Implements IAddChild, INameScope, IQueryAmbient
Vererbung
Attribute
Implementiert

Beispiele

Das folgende Beispiel zeigt eine Formatdeklaration, die sich auf die Background Eigenschaft eines Controlauswirkt.

<Style x:Key="Style1">
  <Setter Property="Control.Background" Value="Yellow"/>
</Style>

Gehen Sie wie folgt vor, um die obige Formatvorlage anzuwenden:

<Label Content="Yellow Background" Style="{StaticResource Style1}" />

Sie können stile auch auf alle Elemente eines bestimmten Typs anwenden, indem Sie die TargetType -Eigenschaft verwenden. Das Hinzufügen des Zieltyps zum Format bedeutet, dass Sie die Eigenschaft, die Sie mit der ClassName.PropertyName Syntax festlegen, nicht mehr vollständig qualifizieren müssen. Im folgenden Beispiel wird eine Formatvorlage definiert, die auf jedes TextBlock Element angewendet wird.

<Style TargetType="{x:Type TextBlock}">
  <Setter Property="FontFamily" Value="Segoe Black" />
  <Setter Property="HorizontalAlignment" Value="Center" />
  <Setter Property="FontSize" Value="12pt" />
  <Setter Property="Foreground" Value="#777777" />
</Style>

Hinweis

Viele WPF-Steuerelemente bestehen aus einer Kombination anderer WPF-Steuerelemente, sodass das Erstellen einer Formatvorlage, die für alle Steuerelemente eines Typs gilt, weitreichende Auswirkungen haben kann. Wenn Sie beispielsweise eine Formatvorlage erstellen, die auf die TextBlock Steuerelemente in einem Canvasabzielt, wird die Formatvorlage auf alle TextBlock Steuerelemente im Zeichenbereich angewendet, auch wenn das TextBlock Teil eines anderen Steuerelements ist, z. B. ein ListBox.

Informationen zum Erweitern oder Erben einer definierten Formatvorlage finden Sie auf der BasedOn Seite.

Hinweise

Sie können ein Style für jedes Element festlegen, das von oder FrameworkContentElementabgeleitet wirdFrameworkElement. Eine Formatvorlage wird am häufigsten als Ressource innerhalb des Abschnitts Resources deklariert. Da Es sich bei Formatvorlagen um Ressourcen handelt, gelten dieselben Bereichsregeln, die für alle Ressourcen gelten. Wenn Sie eine Formatvorlage deklarieren, wirkt sie sich also darauf aus, wo sie angewendet werden kann. Wenn Sie beispielsweise die Formatvorlage im Stammelement Ihrer XAML-Datei für die Anwendungsdefinition deklarieren, kann die Formatvorlage überall in Ihrer Anwendung verwendet werden. Wenn Sie eine Navigationsanwendung erstellen und die Formatvorlage in einer der XAML-Dateien der Anwendung deklarieren, kann die Formatvorlage nur in dieser XAML-Datei verwendet werden. Weitere Informationen zu Eingrenzungsregeln für Ressourcen finden Sie unter XAML-Ressourcen.

Die Formatdeklaration besteht aus einem Style -Objekt, das eine Auflistung von mindestens einem Setter -Objekt enthält. Jede Setter besteht aus einem Property und einem Value. Die -Eigenschaft ist der Name der -Eigenschaft des Elements, auf das das Format angewendet werden soll. Nachdem die Formatvorlage als Ressource deklariert wurde, kann sie wie jede andere Ressource referenziert werden.

Hinweis

Wenn mehr als ein Setter in der Setterauflistung mit demselben Property Eigenschaftswert vorhanden ist, wird der Setter verwendet, der zuletzt deklariert wird. Wenn Sie einen Wert für dieselbe Eigenschaft in einer Formatvorlage und direkt für ein Element festlegen, hat der Wert, der direkt für das Element festgelegt ist, Vorrang.

Das Windows Presentation Foundation-Formatvorlagenmodell (WPF) ermöglicht die Wartung und Freigabe eines Erscheinungsbilds sowie die Trennung von Darstellung und Logik. Das Stil- und Vorlagenmodell enthält eine Reihe von Features, mit denen Sie Ihre Benutzeroberfläche anpassen können. Diese Reihe von Features umfasst die Style -Klasse sowie folgendes:

Weitere Informationen finden Sie unter Erstellen von Formaten und Vorlagen.

Konstruktoren

Style()

Initialisiert eine neue Instanz der Style-Klasse.

Style(Type)

Initialisiert eine neue Instanz der Style-Klasse zur Verwendung für den angegebenen Type.

Style(Type, Style)

Initialisiert eine neue Instanz der Style-Klasse zur Verwendung für den angegebenen Type und auf Grundlage des angegebenen Style.

Eigenschaften

BasedOn

Ruft einen definierten Stil ab, der die Grundlage für den aktuellen Stil ist, oder legt diesen fest.

Dispatcher

Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist.

(Geerbt von DispatcherObject)
IsSealed

Ruft einen Wert ab, der angibt, ob der Stil schreibgeschützt ist und nicht geändert werden kann.

Resources

Ruft die Auflistung von Ressourcen ab, die innerhalb des Bereichs dieses Stils verwendet werden können, oder legt sie fest.

Setters

Ruft eine Auflistung von Setter-Objekten und EventSetter-Objekten ab.

TargetType

Ruft den Typ ab, für den dieser Stil vorgesehen ist, oder legt ihn fest.

Triggers

Ruft eine Auflistung von TriggerBase-Objekten ab, die Eigenschaftswerte auf Grundlage bestimmter Bedingungen anwenden.

Methoden

CheckAccess()

Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

(Geerbt von DispatcherObject)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Gibt den Hashcode für diesen Style zurück.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
RegisterName(String, Object)

Registriert ein neues Name/Objekt-Paar im aktuellen Namescope.

Seal()

Sperrt diesen Stil und alle Factorys und Trigger, damit sie nicht geändert werden können.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
UnregisterName(String)

Entfernt eine Name/Objekt-Zuordnung aus dem Namescope.

VerifyAccess()

Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

(Geerbt von DispatcherObject)

Explizite Schnittstellenimplementierungen

IAddChild.AddChild(Object)

Fügt ein untergeordnetes Objekt hinzu.

IAddChild.AddText(String)

Fügt dem Objekt den Textinhalt eines Knotens hinzu.

INameScope.FindName(String)

Gibt ein Objekt zurück, das über den bereitgestellten kennzeichnenden Namen verfügt.

IQueryAmbient.IsAmbientPropertyAvailable(String)

Fragt ab, ob eine angegebene Ambient-Eigenschaft im aktuellen Bereich verfügbar ist.

Gilt für

Siehe auch