CustomResource-Markuperweiterung
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern

CustomResource-Markuperweiterung

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation ]

Stellt einen Wert für ein beliebiges XAML-Attribut bereit. Dazu wird ein Verweis auf eine Ressource aus einer benutzerdefinierten Ressourcensuchimplementierung untersucht. Die Ressourcensuche erfolgt mithilfe einer Implementierung der CustomXamlResourceLoader-Klasse.

XAML-Attributsyntax

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

XAML-Werte

BenennungBeschreibung

key

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. Sie hängt in hohem Maße von der Implementierung von CustomXamlResourceLoader ab.

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 passieren, bevor XAML-Code auf Seitenebene, der die {CustomResource}-Erweiterungssyntax enthält, geladen wird. CustomXamlResourceLoader.Current kann im Application-Unterklassenkonstruktor festgelegt werden, 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 für Attributwerte Escapezeichen verwendet werden müssen, damit sie keine Literalwerte oder Handlernamen darstellen, und es nicht ausreicht, Typkonverter für bestimmte Typen oder Eigenschaften zu verwenden. 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.

Verwandte Themen

ResourceDictionary- und XAML-Ressourcenreferenzen
CustomXamlResourceLoader
GetResource

 

 

Anzeigen:
© 2017 Microsoft