Расширение разметки {CustomResource}
Предоставляет значение для любого атрибута языка XAML путем оценки ссылки на ресурс, которая берется из пользовательской реализации поиска ресурсов. Поиск ресурсов выполняется посредством реализации класса CustomXamlResourceLoader.
Использование атрибутов XAML
<object property="{CustomResource key}" .../>
Значения XAML
Термин | Описание |
---|---|
ключ | Ключ для запрашиваемого ресурса. Способ первоначального назначения ключа определяется в зависимости от реализации класса CustomXamlResourceLoader, который в данный момент зарегистрирован для использования. |
Комментарии
CustomResource — это способ получения значений, которые определены где-либо в пользовательском репозитории ресурсов. Этот метод является относительно сложным, и он не используется в большинстве сценариев приложений среды выполнения Windows.
Разрешение CustomResource в словаре ресурсов в данном разделе не описывается, так как может происходить совершенно по-разному в зависимости от реализации класса CustomXamlResourceLoader.
Анализатор XAML среды выполнения Windows вызывает метод GetResource реализации класса CustomXamlResourceLoader при каждом использовании {CustomResource}
в разметке. Параметр resourceId, передаваемый методу GetResource, берется из аргумента key; источником остальных входных параметров, а также свойств, к которым применяется это использование, является контекст.
Использование {CustomResource}
не работает по умолчанию (базовая реализация GetResource не закончена). Чтобы создать допустимую ссылку на {CustomResource}
, сделайте следующее:
- Создайте производный пользовательский класс от CustomXamlResourceLoader и переопределите метод GetResource. Не вызывайте базовый класс в реализации.
- Задайте свойство CustomXamlResourceLoader.Current для ссылки на класс в логике инициализации. Это необходимо сделать до загрузки XAML-кода уровня страницы, который включает использование расширения
{CustomResource}
. Например, CustomXamlResourceLoader.Current можно задать в конструкторе подкласса Application, который создается в шаблонах кода программной части App.xaml. - Теперь вы можете использовать расширения
{CustomResource}
в коде XAML, который приложение загружает как страницы, либо в словарях ресурсов XAML.
CustomResource — это расширение разметки. Расширения разметки обычно реализуются, если требуется заменить значения атрибутов на нелитеральные значения или имена обработчиков и если требуется больше, чем простая настройка преобразователей типов на работу с определенными типами или свойствами. Для всех расширений разметки в XAML в синтаксисе атрибутов используются символы "{" и "}". Это соответствует соглашению, по которому процессор XAML распознает, что расширение разметки должно обработать атрибут.
Связанные темы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по