{CustomResource}-Markuperweiterung

Stellt einen Wert für ein beliebiges XAML-Attribut bereit, indem ein Verweis auf eine Ressource aus einer benutzerdefinierten Ressourcennachschlage-Implementierung untersucht wird. Das Nachschlagen der Ressource erfolgt mithilfe einer Implementierung der CustomXamlResourceLoader-Klasse.

XAML-Attributsyntax

<object property="{CustomResource key}" .../>

XAML-Werte

Begriff BESCHREIBUNG
Schlüssel Der Schlüssel für die angeforderte Ressource. Die ursprüngliche Zuweisung des Schlüssels ist abhängig von der Implementierung der CustomXamlResourceLoader-Klasse, die aktuell zur Verwendung registriert wurde.

Hinweise

CustomResource ist eine Methode zum Abrufen von Werten, die an anderer Stelle in einem benutzerdefinierten Ressourcenrepository definiert sind. Diese Technik ist relativ komplex und wird in den meisten Szenarien für Windows-Runtime-App-Szenarien nicht verwendet.

Die Auflösung einer CustomResource in ein Ressourcenwörterbuch wird in diesem Thema nicht beschrieben, da diese sehr unterschiedlich sein kann, abhängig von der Implementierung von CustomXamlResourceLoader.

Die GetResource-Methode der Implementierung von CustomXamlResourceLoader wird vom XAML-Parser der Windows-Runtime aufgerufen, wenn eine {CustomResource} im Markup gefunden wird. Die resourceId, die an GetResource übergeben wird, stammt aus dem key-Argument. Die anderen Eingabeparameter sind kontextabhängig und richten sich beispielsweise nach der Eigenschaft, auf die sich die Verwendung bezieht.

Eine {CustomResource}-Syntax funktioniert standardmäßig nicht (die Basisimplementierung von GetResource ist unvollständig). Für einen gültigen {CustomResource}-Verweis müssen Sie die folgenden Schritte ausführen:

  1. Leiten Sie eine benutzerdefinierte Klasse von CustomXamlResourceLoader ab, und überschreiben Sie die GetResource-Methode. Rufen Sie in der Implementierung nicht die Methode der Basisklasse auf.
  2. Legen Sie CustomXamlResourceLoader.Current fest, um auf Ihre Klasse in der Initialisierungslogik zu verweisen. Dies muss erfolgen, bevor XAML-Code auf Seitenebene geladen wird, der die {CustomResource}-Erweiterungssyntax enthält. Eine Stelle, an der CustomXamlResourceLoader.Current festgelegt werden kann, ist im Application-Unterklassenkonstruktor, der in den App.xaml-CodeBehind-Vorlagen für Sie generiert wird.
  3. Jetzt können Sie {CustomResource}-Erweiterungen in dem XAML-Code, den Ihre App als Seiten lädt, oder in XAML-Ressourcenverzeichnissen verwenden.

CustomResource 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 ihrer Attributsyntax. Anhand dieser Konvention erkennt ein XAML-Prozessor, dass eine Markuperweiterung das Attribut verarbeiten muss.