Freigeben über


Inlinestile und -vorlagen

Windows Presentation Foundation (WPF) stellt Style-Objekte und Vorlagenobjekte (FrameworkTemplate-Unterklassen) bereit, mit denen Sie die visuelle Darstellung eines Elements in Ressourcen definieren können, sodass sie mehrmals verwendet werden können. Aus diesem Grund verweisen Attribute in XAML, die die Typen Style und FrameworkTemplate akzeptieren, fast immer auf vorhandene Stile und Formatvorlagen, anstatt neue Elemente inline zu definieren.

Einschränkungen von Inlineformatvorlagen und Vorlagen

In XAML (Extensible Application Markup Language) können Formatvorlagen- und Vorlageneigenschaften technisch auf zwei Arten festgelegt werden. Sie können Attributsyntax verwenden, um auf eine Formatvorlage zu verweisen, die in einer Ressource definiert wurde, z. B. <objectStyle="{StaticResourcemeinRessourcenSchlüssel}" .../>. Sie können auch Eigenschaftselementsyntax verwenden, um eine Formatvorlage inline zu definieren, beispielsweise:

< Objekt >

< Objekt .Style>

< Style .../>

</ Objekt .Style>

</ Objekt >

Die Attributsyntax ist viel häufiger. Eine Formatvorlage, die inline und nicht in Ressourcen definiert ist, ist zwangsläufig nur auf das enthaltende Element beschränkt und kann nicht auf einfache Weise wiederverwendet werden, da sie keinen Ressourcenschlüssel besitzt. Im Allgemeinen ist ein ressourcendefinierter Stil vielseitiger und nützlicher und steht mehr im Einklang mit dem allgemeinen Programmiermodell von Windows Presentation Foundation (WPF), das die Programmlogik im Code vom Design im Markup trennt.

Normalerweise gibt es keinen Grund, eine Formatvorlage oder eine Vorlage inline festzulegen, selbst wenn Sie nur beabsichtigen, diese Formatvorlage oder Vorlage an dieser Stelle zu verwenden. Die meisten Elemente, die eine Formatvorlage oder eine Vorlage annehmen können, unterstützen auch eine Inhaltseigenschaft und ein Inhaltsmodell. Wenn Sie die logische Struktur, die Sie durch Formatvorlagen oder Vorlagen erstellen, nur ein Mal verwenden, wäre es noch einfacher, diese Inhaltseigenschaft mit den entsprechenden untergeordneten Elementen in direktem Markup mit einem Wert zu füllen. Dies würde die Formatvorlagen- und Vorlagenmechanismen insgesamt umgehen.

Andere Syntaxen, die durch Markuperweiterungen ermöglicht werden und ein Objekt zurückgeben, sind auch für Formatvorlagen und Vorlagen möglich. Zwei solche Erweiterungen für mögliche Szenarien umfassen TemplateBinding und Binding.

Weitere Informationen