Delen via


x:Sleutelkenmerk

Unieke identificatie van elementen die worden gemaakt en waarnaar wordt verwezen als resources en die bestaan in een ResourceDictionary.

XAML-kenmerkgebruik

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

XAML-kenmerkgebruik ( impliciete ResourceDictionary)

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

XAML-waarden

Termijn Description
Voorwerp Elk object dat deelbaar is. Zie ResourceDictionary- en XAML-resourceverwijzingen.
stringKeyValue Een echte string die als sleutel wordt gebruikt, moet voldoen aan de XamlName-grammatica>. Zie 'XamlName grammar' hieronder.

Grammatica van XamlName

Hier volgt de normatieve grammatica voor een tekenreeks die wordt gebruikt als een sleutel in de Windows Runtime XAML-implementatie:

XamlName ::= NameStartChar (NameChar)*
NameStartChar ::= LetterCharacter | '_'
NameChar ::= NameStartChar | DecimalDigit
LetterCharacter ::= ('a'-'z') | ('A'-'Z')
DecimalDigit ::= '0'-'9'
CombiningCharacter::= none
  • Tekens zijn beperkt tot het onderste ASCII-bereik, en meer specifiek tot hoofdletters en kleine letters van het Romeinse alfabet, cijfers, en het onderstrepingsteken (_).
  • Het Unicode-tekenbereik wordt niet ondersteund.
  • Een naam kan niet beginnen met een cijfer.

Opmerkingen

Onderliggende elementen van een ResourceDictionary bevatten over het algemeen een x:Key-kenmerk dat een unieke sleutelwaarde in die woordenlijst aangeeft. Uniciteit van de sleutel wordt tijdens het laadproces afgedwongen door de XAML-processor. Niet-unieke x:Sleutelwaarden resulteren in XAML-parseringsuitzondering. Als dit wordt aangevraagd door de markeringsextensie {StaticResource}, resulteert een niet-opgeloste sleutel ook in XAML-parseringsuitzonderingen.

x:Key en x:Name zijn geen identieke concepten. x:Key wordt uitsluitend gebruikt in resourcewoordenlijsten. x:Name wordt gebruikt voor alle gebieden van XAML. Een FindName-aanroep met behulp van een sleutelwaarde haalt geen sleutelresource op. Objecten die zijn gedefinieerd in een resourcewoordenlijst, hebben mogelijk een x:Key, een x:Name of beide. De sleutel en de naam hoeven niet overeen te komen.

Houd er rekening mee dat in de impliciete syntaxis die wordt weergegeven, het ResourceDictionary-object impliciet is in de wijze waarop de XAML-processor een nieuw object produceert om een resourcesverzameling te vullen.

Het code-equivalent van het opgeven van x:Key is elke bewerking die gebruikmaakt van een sleutel met de onderliggende ResourceDictionary. Een x:Key die wordt toegepast in markeringen voor een resource, is bijvoorbeeld gelijk aan de waarde van de sleutelparameterinvoegen wanneer u de resource toevoegt aan een ResourceDictionary.

Een item in een resourcewoordenlijst kan een waarde weglaten voor x:Key als het een doelstijl of ControlTemplate is; in elk van deze gevallen is de impliciete sleutel van het resource-item de TargetType-waarde die wordt geïnterpreteerd als een tekenreeks. Zie XAML-stijlen en ResourceDictionary- en XAML-resourceverwijzingen voor meer informatie.