Attribut x:Keyx:Key attribute

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.Uniquely identifies elements that are created and referenced as resources, and which exist within a ResourceDictionary.

Utilisation des attributs XAMLXAML attribute usage

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

Utilisation des attributs XAML (ResourceDictionary implicite)XAML attribute usage (implicit ResourceDictionary)

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

Valeurs XAMLXAML values

TermeTerm DescriptionDescription
objectobject Tout objet partageable.Any object that is shareable. Voir Références aux ressources ResourceDictionary et XAML.See ResourceDictionary and XAML resource references.
stringKeyValuestringKeyValue Chaîne vraie utilisée en tant que clé, qui doit être conforme à la grammaire XamlName>.A true string used as a key, which must conform to the XamlName> grammar. Voir « Grammaire XamlName » ci-dessous.See "XamlName grammar" below.  

Grammaire XamlNameXamlName grammar

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) :The following is the normative grammar for a string that is used as a key in the Universal Windows Platform (UWP) XAML implementation:

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 particulièrement aux lettres majuscules et minuscules de l’alphabet romain, chiffres et le caractère de soulignement ( _ ).Characters are restricted to the lower ASCII range, and more specifically to Roman alphabet uppercase and lowercase letters, digits, and the underscore (_) character.
  • La plage de caractères Unicode n’est pas prise en charge.The Unicode character range is not supported.
  • Un nom ne peut pas commencer par un chiffre.A name cannot begin with a digit.

RemarquesRemarks

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.Child elements of a ResourceDictionary generally include an x:Key attribute that specifies a unique key value within that dictionary. L’unicité de la clé est appliquée au moment du chargement par le processeur XAML.Key uniqueness is enforced at load time by the XAML processor. Les valeurs x:Key non uniques engendrent des exceptions d’analyse XAML.Non-unique x:Key values will result in XAML parse exceptions. Sur demande de l’extension de balisage {StaticResource}, toute clé non résolue engendre également des exceptions d’analyse XAML.If requested by {StaticResource} markup extension, a non-resolved key will also result in XAML parse exceptions.

x:Key et x:Name ne sont pas des concepts identiques.x:Key and x:Name are not identical concepts. x:Key est exclusivement utilisé dans les dictionnaires de ressources.x:Key is used exclusively in resource dictionaries. x:Name est utilisé pour toutes les zones de code XAML.x:Name is used for all areas of XAML. Un appel FindName à l’aide d’une valeur de clé ne récupère pas de ressource de clé.A FindName call using a key value will not retrieve a keyed resource. Les objets définis dans un dictionnaire de ressources peuvent avoir un x : Key, un x : Name ou les deux.Objects defined in a resource dictionary may have an x:Key, an x:Name or both. La clé et le nom ne doivent pas nécessairement correspondre.The key and name are not required to match.

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.Note that in the implicit syntax shown, the ResourceDictionary object is implicit in how the XAML processor produces a new object to populate a Resources collection.

Le code qui équivaut à spécifier x:Key est une opération qui utilise une clé avec la classe ResourceDictionary sous-jacente.The code equivalent of specifying x:Key is any operation that uses a key with the underlying ResourceDictionary. 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.For example, an x:Key applied in markup for a resource is equivalent to the value of the key parameter of Insert when you add the resource to a 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.An item in a resource dictionary can omit a value for x:Key if it is a targeted Style or ControlTemplate; in each of these cases the implicit key of the resource item is the TargetType value interpreted as a string. Pour plus d’informations, voir Démarrage rapide : application de styles aux contrôles et Références aux ressources ResourceDictionary et XAML.For more info, see Quickstart: styling controls and ResourceDictionary and XAML resource references.