Partager via


Attribut x:Key

Identifie de manière unique les éléments créés et référencés en tant que ressources, et qui existent dans un 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 pouvant être partagé. Consultez les références de ressources ResourceDictionary et XAML.
stringKeyValue Chaîne true utilisée comme clé, qui doit être conforme à la grammaire XamlName> . Consultez « Grammaire XamlName » ci-dessous.

Grammaire XamlName

Voici la grammaire normative d’une chaîne utilisée comme clé dans l’implémentation XAML 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.

Notes

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

x :Key et x :Name ne sont pas des concepts identiques. x :Key est utilisé exclusivement dans les dictionnaires de ressources. x :Name est utilisé pour toutes les zones de XAML. Un appel FindName à l’aide d’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 sont pas requis pour correspondre.

Notez que dans la syntaxe implicite indiquée, l’objet ResourceDictionary est implicite dans la façon dont le processeur XAML produit un nouvel objet pour remplir une collection Resources.

L’équivalent de code de la spécification de x :Key est toute opération qui utilise une clé avec resourceDictionary sous-jacent. Par exemple, une x :Key appliquée dans le balisage d’une ressource équivaut à la valeur du paramètre de clé Insert lorsque vous ajoutez la ressource à un ResourceDictionary.

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