Attribut x:Key

Identifie de manière unique les éléments qui sont créés et référencés en tant que ressources, et qui existent au sein d’une classe ResourceDictionary.

Utilisation des attributs XAML

<ResourceDictionary>
  <object x:Key="stringKeyValue".../>
</ResourceDictionary>

Utilisation des attributs XAML (ResourceDictionary implicite)

<object.Resources>
  <object x:Key="stringKeyValue".../>
</object.Resources>

Valeurs XAML

Terme Description
object Tout objet partageable. Voir Références aux ressources ResourceDictionary et XAML.
stringKeyValue Chaîne true utilisée comme clé, qui doit être conforme à la grammaire XamlName> . Voir « Grammaire XamlName » ci-dessous.

Grammaire XamlName

Les points suivants représentent la grammaire normative qui régit une chaîne servant de clé dans l’implémentation XAML de plateforme Windows universelle (UWP) :

XamlName ::= NameStartChar (NameChar)*
NameStartChar ::= LetterCharacter | '_'
NameChar ::= NameStartChar | DecimalDigit
LetterCharacter ::= ('a'-'z') | ('A'-'Z')
DecimalDigit ::= '0'-'9'
CombiningCharacter::= none
  • Les caractères sont limités à la plage ASCII inférieure, et plus spécifiquement aux lettres majuscules et minuscules de l’alphabet romain, aux chiffres et au caractère de soulignement (_).
  • La plage de caractères Unicode n’est pas prise en charge.
  • Un nom ne peut pas commencer par un chiffre.

Remarques

Les éléments enfants d’un ResourceDictionary incluent généralement un attribut x:Key qui spécifie une valeur de clé unique au sein de ce dictionnaire. L’unicité de la clé est appliquée au moment du chargement par le processeur XAML. Les valeurs x:Key non uniques engendrent des exceptions d’analyse XAML. Sur demande de l’extension de balisage {StaticResource}, toute clé non résolue engendre également des exceptions d’analyse XAML.

x:Key et x:Name ne sont pas des concepts identiques. x:Key est exclusivement utilisé dans les dictionnaires de ressources. x:Name est utilisé pour toutes les zones de code XAML. Un appel FindName utilisant une valeur de clé ne récupère pas de ressource à clé. Les objets définis dans un dictionnaire de ressources peuvent avoir un x : Key, un x : Name ou les deux. La clé et le nom ne doivent pas nécessairement correspondre.

Notez que dans la syntaxe implicite présentée, l’objet ResourceDictionary est implicite dans la manière dont le processeur XAML produit un nouvel objet pour renseigner une collection Resources.

Le code qui équivaut à spécifier x:Key est une opération qui utilise une clé avec la classe ResourceDictionary sous-jacente. Par exemple, un x:Key appliqué dans un balisage pour une ressource équivaut à la valeur du paramètre key de Insert lorsque vous ajoutez la ressource à une classe ResourceDictionary.

Un élément d’un dictionnaire de ressource peut ignorer une valeur pour x:Key s’il s’agit d’un Style ou ControlTemplate ciblé ; dans chacun des cas, la clé implicite de la ressource est la valeur TargetType interprétée comme une chaîne. Pour plus d’informations, voir Démarrage rapide : application de styles aux contrôles et Références aux ressources ResourceDictionary et XAML.