Extension de balisage {CustomResource}

Fournit une valeur pour tout attribut XAML en évaluant une référence à une ressource qui provient de l’implémentation d’une recherche de ressource personnalisée. La recherche de ressource est effectuée via l’implémentation d’une classe CustomXamlResourceLoader.

Utilisation des attributs XAML

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

Valeurs XAML

Terme Description
key Clé pour la ressource demandée. La façon dont la clé est affectée initialement est spécifique à l’implémentation de la classe CustomXamlResourceLoader actuellement inscrite pour une utilisation.

Remarques

CustomResource est une technique permettant d’obtenir des valeurs définies ailleurs dans un référentiel de ressources personnalisées. Cette technique relativement avancée n’est pas utilisée dans la plupart des scénarios des applications Windows Runtime.

Le mode de résolution de CustomResource en dictionnaire de ressources n’est pas décrit dans cette rubrique, car il peut varier considérablement selon la façon dont CustomXamlResourceLoader est implémenté.

La méthode GetResource de l’implémentation de CustomXamlResourceLoader est appelée par l’analyseur XAML Windows Runtime chaque fois qu’il rencontre l’utilisation de {CustomResource} dans le balisage. Le resourceId passé à GetResource vient de l’argument key. Par ailleurs, les autres paramètres d’entrée proviennent du contexte, par exemple la propriété à laquelle l’utilisation s’applique.

L’utilisation de {CustomResource} ne fonctionne pas par défaut (l’implémentation de base de GetResource est incomplète). Pour créer une référence valide à {CustomResource}, vous devez effectuer chacune des étapes suivantes :

  1. Dérivez une classe personnalisée de CustomXamlResourceLoader et remplacez la méthode GetResource . N’appelez pas la base dans l’implémentation.
  2. Définissez CustomXamlResourceLoader.Current de manière à référencer votre classe dans une logique d’initialisation. Cette opération doit intervenir avant le chargement de tout code XAML de niveau page comprenant l’utilisation d’une extension {CustomResource}. Vous pouvez définir CustomXamlResourceLoader.Current dans le constructeur de sous-classe Application qui est automatiquement généré dans les modèles code-behind App.xaml.
  3. Vous pouvez à présent utiliser des extensions {CustomResource} dans le XAML que votre application charge en tant que pages, ou à partir de dictionnaires de ressources XAML.

CustomResource est une extension de balisage. Les extensions de balisage sont généralement implémentées pour éviter que les valeurs d’attribut ne soient autre chose que des valeurs littérales ou des noms de gestionnaire et lorsque l’exigence dépasse le cadre de la définition de convertisseurs de type sur certains types ou propriétés. Toutes les extensions de balisage XAML utilisent les caractères « { » et « } » dans leur syntaxe d’attribut, ce qui correspond à la convention qui permet au processeur XAML de reconnaître qu’une extension de balisage doit traiter l’attribut.