Udostępnij przez


atrybut x:Key

Unikatowo identyfikuje elementy, które są tworzone i przywoływane jako zasoby, i które istnieją w ResourceDictionary.

Użycie atrybutu XAML

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

Użycie atrybutów XAML (implicytne ResourceDictionary)

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

Wartości XAML

Termin Description
obiekt Każdy obiekt, który jest współużytkowalny. Zobacz ResourceDictionary oraz odniesienia do zasobów XAML.
stringKeyValue Prawdziwy ciąg używany jako klucz, który musi być zgodny z gramatyką XamlName> . Zobacz "Gramatyka XamlName" poniżej.

Gramatyka XamlName

Poniżej przedstawiono normatyczną gramatykę ciągu, który jest używany jako klucz w implementacji XAML środowiska uruchomieniowego systemu Windows:

XamlName ::= NameStartChar (NameChar)*
NameStartChar ::= LetterCharacter | '_'
NameChar ::= NameStartChar | DecimalDigit
LetterCharacter ::= ('a'-'z') | ('A'-'Z')
DecimalDigit ::= '0'-'9'
CombiningCharacter::= none
  • Znaki są ograniczone do dolnego zakresu ASCII, a dokładniej do alfabetu rzymskiego wielkie i małe litery, cyfry i znak podkreślenia (_).
  • Zakres znaków Unicode nie jest obsługiwany.
  • Nazwa nie może zaczynać się od cyfry.

Uwagi

Elementy podrzędne elementu ResourceDictionary zazwyczaj zawierają atrybut x:Key , który określa unikatową wartość klucza w tym słowniku. Unikatowość klucza jest wymuszana w czasie ładowania przez procesor XAML. Nieunikatowe wartości x:Key spowodują wyjątki analizy XAML. W przypadku żądania przez rozszerzenie znaczników {StaticResource} nierozwiązany klucz również spowoduje wyjątki analizy XAML.

x:Key i x:Name nie są identyczne. x:Key jest używany wyłącznie w słownikach zasobów. x:Name jest używana dla wszystkich obszarów XAML. Wywołanie FindName przy użyciu wartości klucza nie spowoduje pobrania zasobu klucza. Obiekty zdefiniowane w słowniku zasobów mogą mieć x:Key, x:Name lub oba. Klucz i nazwa nie są wymagane do dopasowania.

Należy pamiętać, że w pokazanej składni niejawnej obiekt ResourceDictionary jest niejawny w sposobie tworzenia nowego obiektu w celu wypełnienia kolekcji Resources .

Odpowiednikiem kodu ustawienia x:Key jest dowolna operacja, która używa klucza z bazowego ResourceDictionary. Na przykład x:Key zastosowany w metce dla zasobu jest odpowiednikiem wartości parametru kluczaWstaw podczas dodawania zasobu do ResourceDictionary.

Element w słowniku zasobów może pominąć wartość x:Key, jeśli jest to targetowany Style lub ControlTemplate; w każdym z tych przypadków niejawny klucz elementu zasobu jest wartością TargetType interpretowaną jako ciąg. Aby uzyskać więcej informacji, zobacz Style XAML i ResourceDictionary oraz odwołania do zasobów XAML.