Атрибут 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.