Compartilhar via


Atributo x:Key

Identifica exclusivamente os elementos que são criados e referenciados como recursos e que existem em um ResourceDictionary.

Uso do atributo XAML

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

Uso de atributo XAML ( ResourceDictionary implícito)

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

Valores XAML

Prazo Description
objeto Qualquer objeto compartilhável. Consulte ResourceDictionary e referências de recursos XAML.
stringKeyValue Uma cadeia de caracteres verdadeira usada como uma chave, que deve estar em conformidade com a gramática XamlName> . Veja "Gramática XamlName" abaixo.

Gramática XamlName

A seguir está a gramática normativa para uma cadeia de caracteres que é usada como uma chave na implementação XAML do Windows Runtime:

XamlName ::= NameStartChar (NameChar)*
NameStartChar ::= LetterCharacter | '_'
NameChar ::= NameStartChar | DecimalDigit
LetterCharacter ::= ('a'-'z') | ('A'-'Z')
DecimalDigit ::= '0'-'9'
CombiningCharacter::= none
  • Os caracteres são restritos ao intervalo ASCII inferior e, mais especificamente, a letras maiúsculas e minúsculas do alfabeto romano, dígitos e o caractere sublinhado (_).
  • Não há suporte para o intervalo de caracteres Unicode.
  • Um nome não pode começar com um dígito.

Observações

Os elementos filho de um ResourceDictionary geralmente incluem um atributo x:Key que especifica um valor de chave exclusivo dentro desse dicionário. A exclusividade da chave é imposta no momento da carga pelo processador XAML. Valores x:Key não exclusivos resultarão em exceções de análise XAML. Se solicitado pela extensão de marcação {StaticResource}, uma chave não resolvida também resultará em exceções de análise XAML.

x:Key e x:Name não são conceitos idênticos. x:Key é usado exclusivamente em dicionários de recursos. x:Name é usado para todas as áreas de XAML. Uma chamada FindName usando um valor de chave não recuperará um recurso com chave. Objetos definidos em um dicionário de recursos podem ter um x:Key, um x:Name ou ambos. A chave e o nome não precisam corresponder.

Observe que, na sintaxe implícita mostrada, o objeto ResourceDictionary está implícito em como o processador XAML produz um novo objeto para preencher uma coleção Resources .

O equivalente em código de especificar x:Key é qualquer operação que utilize uma chave com o ResourceDictionary subjacente. Por exemplo, um x:Key aplicado na marcação de um recurso é equivalente ao valor do parâmetro key do Insert quando você adiciona o recurso a um ResourceDictionary.

Um item em um dicionário de recursos pode omitir um valor para x:Key se for um Estilo ou ControlTemplate de destino; em cada um desses casos, a chave implícita do item de recurso é o valor TargetType interpretado como uma cadeia de caracteres. Para obter mais informações, consulte estilos XAML e ResourceDictionary e referências de recursos XAML.