x:Key-Attribut
Identifiziert eindeutig Elemente, die als Ressourcen erstellt und referenziert werden und die in einem ResourceDictionary vorhanden sind.
XAML-Attributsyntax
<ResourceDictionary>
<object x:Key="stringKeyValue".../>
</ResourceDictionary>
XAML-Attributverwendung (implizites ResourceDictionary)
<object.Resources>
<object x:Key="stringKeyValue".../>
</object.Resources>
XAML-Werte
Begriff | Beschreibung |
---|---|
Objekt | Jedes Objekt, das gemeinsam verwendet werden kann. Siehe ResourceDictionary- und XAML-Ressourcenverweise. |
stringKeyValue | Eine echte Zeichenfolge, die als Schlüssel verwendet wird, die der XamlName-Grammatik> entsprechen muss. Siehe "XamlName-Grammatik" weiter unten. |
XamlName-Grammatik
Nachfolgend sehen Sie die normative Grammatik für eine Zeichenfolge, die als Schlüssel in der XAML-Implementierung von Universelle Windows-Plattform (UWP) verwendet wird:
XamlName ::= NameStartChar (NameChar)*
NameStartChar ::= LetterCharacter | '_'
NameChar ::= NameStartChar | DecimalDigit
LetterCharacter ::= ('a'-'z') | ('A'-'Z')
DecimalDigit ::= '0'-'9'
CombiningCharacter::= none
- Zeichen sind auf den unteren ASCII-Bereich beschränkt, insbesondere auf Groß- und Kleinbuchstaben, Ziffern und das Unterstrichzeichen (_).
- Der Unicode-Zeichenbereich wird nicht unterstützt.
- Ein Name kann nicht mit einer Ziffer beginnen.
Hinweise
Untergeordnete Elemente eines ResourceDictionary enthalten in der Regel ein x:Key-Attribut, das einen eindeutigen Schlüsselwert innerhalb dieses Wörterbuchs angibt. Die Eindeutigkeit des Schlüssels wird zum Ladezeitpunkt durch den XAML-Prozessor erzwungen. Nicht eindeutige x:Key-Werte führen zu XAML-Analyseausnahmen. Wenn von der {StaticResource}-Markuperweiterung angefordert wird, führt ein nicht aufgelöster Schlüssel auch zu XAML-Analyseausnahmen.
x:Key und x:Name sind keine identischen Konzepte. x:Key wird ausschließlich in Ressourcenwörterbüchern verwendet. x:Name wird für alle XAML-Bereiche verwendet. Ein FindName-Aufruf mit einem Schlüsselwert ruft keine Schlüsselressource ab. Objekte, die in einem Ressourcenwörterbuch definiert sind, weisen möglicherweise ein x:Key, ein x:Name oder beides auf. Der Schlüssel und name müssen nicht übereinstimmen.
Beachten Sie, dass das ResourceDictionary-Objekt in der gezeigten impliziten Syntax implizit darin besteht, wie der XAML-Prozessor ein neues Objekt erzeugt, um eine Resources-Auflistung aufzufüllen.
Das Codeäquivalent zum Angeben von "x:Key " ist jeder Vorgang, der einen Schlüssel mit dem zugrunde liegenden ResourceDictionary verwendet. Beispielsweise entspricht ein im Markup für eine Ressource angewendeter x:Key dem Wert des Schlüsselparameters von Insert, wenn Sie die Ressource zu einem ResourceDictionary hinzufügen.
Ein Element in einem Ressourcenwörterbuch kann einen Wert für "x:Key" weglassen, wenn es sich um ein gezieltes Style- oder ControlTemplate-Element handelt. In jedem dieser Fälle ist der implizite Schlüssel des Ressourcenelements der TargetType-Wert, der als Zeichenfolge interpretiert wird. Weitere Informationen finden Sie in der Schnellstartanleitung: Formatieren von Steuerelementen und ResourceDictionary- und XAML-Ressourcenverweise.