Расширение разметки {CustomResource}
Предоставляет значение для любого атрибута XAML, оценивая ссылку на ресурс, поступающий из пользовательской реализации поиска ресурсов. Поиск ресурсов выполняется реализацией класса CustomXamlResourceLoader .
Использование атрибутов XAML
<object property="{CustomResource key}" .../>
Значения XAML
Срок | Description |
---|---|
ключ | Ключ для запрашиваемого ресурса. Первоначальное назначение ключа зависит от реализации класса CustomXamlResourceLoader , который в настоящее время зарегистрирован для использования. |
Замечания
CustomResource — это метод получения значений, определенных в другом месте пользовательского репозитория ресурсов. Этот метод относительно расширен и не используется большинством сценариев среда выполнения Windows приложения.
Способ разрешения CustomResource в словарь ресурсов не описан в этом разделе, так как это может значительно отличаться в зависимости от того, как реализован CustomXamlResourceLoader.
Метод GetResource реализации CustomXamlResourceLoader вызывается средство синтаксического анализа XAML среда выполнения Windows при каждом обнаружении {CustomResource}
использования в разметке. Идентификатор ресурса, передаваемый в GetResource, поступает из ключевого аргумента, а другие входные параметры приходят из контекста, например, к которому применяется свойство.
Использование {CustomResource}
не работает по умолчанию (базовая реализация GetResource является неполной). Чтобы сделать действительную {CustomResource}
ссылку, необходимо выполнить следующие действия:
- Наследуйте пользовательский класс из CustomXamlResourceLoader и переопределите метод GetResource. Не вызывайте базу в реализации.
- Задайте customXamlResourceLoader.Current для ссылки на класс в логике инициализации. Это должно произойти до загрузки любого XAML на уровне страницы, включающего
{CustomResource}
использование расширения. Одно место для задания CustomXamlResourceLoader.Current находится в конструкторе подкласса приложения, созданном для вас в шаблонах кода App.xaml. - Теперь вы можете использовать
{CustomResource}
расширения в XAML, которые приложение загружает как страницы или из словарей ресурсов XAML.
CustomResource — это расширение разметки. Расширения разметки обычно реализуются, если требуется заменить значения атрибутов на нелитеральные значения или имена обработчиков и если требуется больше, чем простая настройка преобразователей типов на работу с определенными типами или свойствами. Все расширения разметки в XAML используют символы "{" и "}" в синтаксисе атрибутов, что является соглашением, с помощью которого обработчик XAML распознает, что расширение разметки должно обрабатывать атрибут.