Атрибут x:Key
Присваивает уникальный идентификатор элементам, которые были созданы и отмечены как ресурсы и которые существуют в ResourceDictionary.
Использование атрибутов XAML
<ResourceDictionary>
<object x:Key="stringKeyValue".../>
</ResourceDictionary>
Использование атрибута языка XAML (неявный ResourceDictionary)
<object.Resources>
<object x:Key="stringKeyValue".../>
</object.Resources>
Значения XAML
Термин | Описание |
---|---|
object | Любой объект, к которому можно открыть общий доступ. См. раздел Ссылки на ресурсы 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, примененный в разметке к ресурсу, эквивалентен значению параметра key для Insert, когда вы добавляете ресурс в ResourceDictionary.
Элемент в словаре ресурсов может пропустить значение для x:Key, если оно является конечным объектом для Style или ControlTemplate. В каждом из этих вариантов неявный ключ элемента ресурса представляет собой значение TargetType, обрабатываемое как строка. Дополнительные сведения см. в разделах Краткое руководство: стили элементов управления и Ссылки на ресурсы ResourceDictionary и XAML.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по