Поделиться через


Атрибут x:Key

Уникально идентифицирует элементы, созданные и на которые ссылаются как ресурсы, и которые существуют в ResourceDictionary.

Использование атрибутов XAML

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

Использование атрибута XAML (неявный ResourceDictionary)

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

Значения XAML

Срок Description
объект Любой объект, доступный для совместного использования. См . ссылки на ресурсы ResourceDictionary и XAML.
stringKeyValue Строка true, используемая в качестве ключа, которая должна соответствовать грамматике XamlName> . См. раздел "Грамматика XamlName" ниже.

Грамматика XamlName

Ниже приведена нормативная грамматика для строки, которая используется в качестве ключа в реализации XAML универсальная платформа Windows (UWP):

XamlName ::= NameStartChar (NameChar)*
NameStartChar ::= LetterCharacter | '_'
NameChar ::= NameStartChar | DecimalDigit
LetterCharacter ::= ('a'-'z') | ('A'-'Z')
DecimalDigit ::= '0'-'9'
CombiningCharacter::= none
  • Символы ограничены нижним диапазоном ASCII, а в частности, буквами и строчными буквами, символами подчеркивания (_).
  • Диапазон символов Юникода не поддерживается.
  • Имя не может начинаться с цифры.

Замечания

Дочерние элементы ResourceDictionary обычно включают атрибут x:Key, указывающий уникальное значение ключа в этом словаре. Уникальность ключа применяется во время загрузки обработчиком XAML. Не уникальные значения x:Key приводят к исключениям синтаксического анализа XAML. Если запрашивается расширение разметки {StaticResource}, ключ без разрешения также приведет к исключениям синтаксического анализа XAML.

X:Key и x:Name не являются идентичными понятиями. x:Key используется исключительно в словарях ресурсов. x:Name используется для всех областей XAML. Вызов FindName , использующий значение ключа, не извлекает ресурс с ключом. Объекты, определенные в словаре ресурсов, могут иметь x:Key, x:Name или оба. Ключ и имя не требуются для сопоставления.

Обратите внимание, что в неявном синтаксисе объект ResourceDictionary неявен в том, как обработчик XAML создает новый объект для заполнения коллекции Resources.

Эквивалент кода, указывающий x:Key , является любой операцией, которая использует ключ с базовым ResourceDictionary. Например, x:Key, примененный в разметке ресурса, эквивалентен значению ключевого параметра Insert при добавлении ресурса в ResourceDictionary.

Элемент в словаре ресурсов может опустить значение x:Key, если оно является целевым стилем или ControlTemplate. В каждом из этих случаев неявный ключ элемента ресурса — значение TargetType, интерпретируемое как строка. Дополнительные сведения см. в кратком руководстве: элементы управления стили и ссылки на ресурсы ResourceDictionary и XAML.