ThemeDictionary-Markuperweiterung
Aktualisiert: November 2007
Bietet Autoren von benutzerdefinierten Steuerelementen oder Anwendungen, die Steuerelemente von Drittanbietern integrieren, eine Möglichkeit, Design-spezifische Ressourcenwörterbücher für das Formatieren der Steuerelemente zu verwenden.
Verwendung von XAML-Attributen
<object property="{ThemeDictionary assemblyUri}" .../>
Verwendung von XAML-Objektelementen
<object>
<object.property>
<ThemeDictionary AssemblyName="assemblyUri"/>
<object.property>
<object>
XAML-Werte
assemblyUri |
Die Uniform Resource Identifier (URI) der Assembly, die Designinformationen enthält. In der Regel ist dies ein Paket-URI, der auf eine Assembly in dem größeren Paket verweist. Assemblyressourcen und Paket-URIs vereinfachen die Bereitstellung. Weitere Informationen finden Sie unter Paket-URIs in Windows Presentation Foundation. |
Hinweise
Diese Erweiterung ist dazu gedacht, nur einen bestimmten Eigenschaftenwert zu füllen: einen Wert für ResourceDictionary.Source.
Indem Sie diese Erweiterung verwenden, können Sie eine einzelne Assembly angeben, die nur aus Ressourcen besteht und einige Stile enthält, die nur verwendet werden können, wenn das Windows Aero-Design auf das System des Benutzers angewendet wird, sowie andere Stile, die nur verwendet werden können, wenn Luna aktiv ist, usw. Durch die Verwendung dieser Erweiterung können die Inhalte eines steuerelementspezifischen Ressourcenwörterbuchs automatisch ungültig gemacht und neu geladen werden, sodass sie bei Bedarf für ein anderes Design angegeben werden können.
Die assemblyUri-Zeichenfolge (AssemblyName-Eigenschaftenwert) bildet die Grundlage einer Benennungskonvention, die angibt, welches Wörterbuch für ein bestimmtes Design gültig ist. Die ProvideValue-Logik für ThemeDictionary entspricht der Konvention, da ein Uniform Resource Identifier (URI) generiert wird, der auf eine bestimmte in einer vorkompilierten Ressourcenassembly enthaltene Variante eines Designwörterbuchs verweist. Diese Konvention und die Designinteraktionen mit allgemeinen Formatierungen von Steuerelementen und Formatierungen auf Seiten-/Anwendungsebene als Konzept werden hier nicht im Detail behandelt. Das grundlegende Szenario für die Verwendung von ThemeDictionary ist das Angeben der Source-Eigenschaft eines ResourceDictionary, das auf der Anwendungsebene deklariert ist. Wenn Sie einen URI für die Assembly über eine ThemeDictionary-Erweiterung statt direkt als URI bereitstellen, stellt die Erweiterungslogik eine Ungültigkeitslogik bereit, die bei Änderungen des Systemdesigns gültig wird.
Die Attributsyntax ist die am häufigsten mit dieser Markuperweiterung verwendete Syntax. Das Zeichenfolgetoken, das auf die ThemeDictionary-Bezeichnerzeichenfolge folgt, wird als AssemblyName-Wert der zugrunde liegenden ThemeDictionaryExtension-Erweiterungsklasse zugeordnet.
ThemeDictionary wird möglicherweise auch in der Objektelementsyntax verwendet. In diesem Fall muss der Wert für die AssemblyName-Eigenschaft angegeben werden.
ThemeDictionary kann zudem in einer ausführlichen Attributverwendung genutzt werden, die die Member-Eigenschaft als Eigenschaft-Wert-Paar angibt:
<object property="{ThemeDictionary AssemblyName=assemblyUri}" .../>
Die ausführliche Verwendung ist häufig hilfreich, wenn für eine Erweiterung mehr als eine Eigenschaft festgelegt werden kann oder wenn bestimmte Eigenschaften optional sind. Da für ThemeDictionary nur eine Eigenschaft festgelegt werden kann, ist diese ausführliche Verwendung unüblich.
In der WPF-XAML-Prozessorimplementierung wird die Handhabung dieser Markuperweiterung durch die ThemeDictionaryExtension-Klasse definiert.
ThemeDictionary ist eine Markuperweiterung. Markuperweiterungen werden in der Regel implementiert, wenn Attributwerte mit Escapezeichen versehen werden müssen, damit diese nicht als literale Werte oder als Handlernamen betrachtet werden, und diese Anforderung eher global und nicht nur durch den Einsatz von Typkonvertern für bestimmte Typen oder Eigenschaften erfüllt werden soll. Alle Markuperweiterungen in XAML verwenden die Zeichen { und } in der Attributsyntax. Dies ist die Konvention, anhand der ein XAML-Prozessor erkennt, dass das Attribut von einer Markuperweiterung verarbeitet werden muss. Weitere Informationen finden Sie unter Markuperweiterungen und XAML.
Siehe auch
Aufgaben
Beispiel zu Anwendungen mit Designs
Konzepte
Erstellen von Formaten und Vorlagen
Windows Presentation Foundation-Anwendungsressource, Inhalts- und Datendateien