Inlinestile und -vorlagen
Windows Presentation Foundation (WPF) stellt Style Objekte und Vorlagenobjekte (FrameworkTemplate Unterklassen) bereit, um die visuelle Darstellung eines Elements in Ressourcen zu definieren, 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 inline neue zu definieren.
Einschränkungen von Inlineformatvorlagen und -vorlagen
In Extensible Application Markup Language (XAML) können Stil- und Vorlageneigenschaften technisch auf eine von zwei Arten festgelegt werden. Mithilfe der Attributsyntax können Sie auf einen Stil verweisen, der innerhalb einer Ressource definiert wurde, z. B. <
ObjektStyle="{StaticResource
myResourceKey}" .../>
. 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 stimmt mehr mit dem allgemeinen Prinzip des Programmiermodells von Windows Presentation Foundation (WPF) überein, die Programmlogik im Code von der Gestaltung im Markup zu trennen.
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 einen Stil oder eine Vorlage verwenden 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.
Weitere Syntaxen, die durch Markuperweiterungen aktiviert werden, die ein Objekt zurückgeben, sind auch für Styles und Vorlagen möglich. Zwei solche Erweiterungen für mögliche Szenarios umfassen TemplateBinding und Binding.
Weitere Informationen
.NET Desktop feedback