Freigeben über


{CustomResource}-Markuperweiterung

Stellt einen Wert für jedes XAML-Attribut bereit, indem ein Verweis auf eine Ressource ausgewertet wird, die aus einer benutzerdefinierten Ressourcensuchimplementierung stammt. Die Ressourcensuche erfolgt durch eine CustomXamlResourceLoader-Klassenimplementierung.

XAML-Attributsyntax

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

XAML-Werte

Begriff Beschreibung
Schlüssel Der Schlüssel für die angeforderte Ressource. Wie der Schlüssel anfänglich zugewiesen wird, ist spezifisch für die Implementierung der CustomXamlResourceLoader-Klasse , die derzeit für die Verwendung registriert ist.

Hinweise

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

Wie eine CustomResource in ein Ressourcenwörterbuch aufgelöst wird, wird in diesem Thema nicht beschrieben, da dies je nach Implementierung von CustomXamlResourceLoader sehr unterschiedlich sein kann.

Die GetResource-Methode der CustomXamlResourceLoader-Implementierung wird vom Windows-Runtime XAML-Parser aufgerufen, wenn eine Verwendung im Markup auftritt.{CustomResource} Die an GetResource übergebene resourceId stammt aus dem Schlüsselargument, und die anderen Eingabeparameter stammen aus dem Kontext, z. B. auf welche Eigenschaft die Verwendung angewendet wird.

Eine {CustomResource} Verwendung funktioniert nicht standardmäßig (die Basisimplementierung von GetResource ist unvollständig). Um einen gültigen {CustomResource} Verweis zu erstellen, 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 die Basis in der Implementierung nicht auf.
  2. Legen Sie CustomXamlResourceLoader.Current fest, um auf Ihre Klasse in der Initialisierungslogik zu verweisen. Dies muss geschehen, bevor XAML auf Seitenebene, die die {CustomResource} Erweiterungsverwendung enthält, geladen wird. Ein Ort zum Festlegen von CustomXamlResourceLoader.Current befindet sich im Application-Unterklassenkonstruktor, der für Sie in den CodeBehind-Vorlagen für App.xaml generiert wird.
  3. Jetzt können Sie Erweiterungen im XAML-Code verwenden {CustomResource} , den Ihre App als Seiten lädt, oder aus XAML-Ressourcenwörterbüchern.

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. Dies ist die Konvention, mit der ein XAML-Prozessor erkennt, dass eine Markuperweiterung das Attribut verarbeiten muss.