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


Расширение разметки {CustomResource}

Предоставляет значение для любого атрибута XAML, оценивая ссылку на ресурс, поступающий из пользовательской реализации поиска ресурсов. Поиск ресурсов выполняется реализацией класса CustomXamlResourceLoader .

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

<object property="{CustomResource key}" .../>

Значения XAML

Срок Description
ключ Ключ для запрашиваемого ресурса. Первоначальное назначение ключа зависит от реализации класса CustomXamlResourceLoader , который в настоящее время зарегистрирован для использования.

Замечания

CustomResource — это метод получения значений, определенных в другом месте пользовательского репозитория ресурсов. Этот метод относительно расширен и не используется большинством сценариев среда выполнения Windows приложения.

Способ разрешения CustomResource в словарь ресурсов не описан в этом разделе, так как это может значительно отличаться в зависимости от того, как реализован CustomXamlResourceLoader.

Метод GetResource реализации CustomXamlResourceLoader вызывается средство синтаксического анализа XAML среда выполнения Windows при каждом обнаружении {CustomResource} использования в разметке. Идентификатор ресурса, передаваемый в GetResource, поступает из ключевого аргумента, а другие входные параметры приходят из контекста, например, к которому применяется свойство.

Использование {CustomResource} не работает по умолчанию (базовая реализация GetResource является неполной). Чтобы сделать действительную {CustomResource} ссылку, необходимо выполнить следующие действия:

  1. Наследуйте пользовательский класс из CustomXamlResourceLoader и переопределите метод GetResource. Не вызывайте базу в реализации.
  2. Задайте customXamlResourceLoader.Current для ссылки на класс в логике инициализации. Это должно произойти до загрузки любого XAML на уровне страницы, включающего {CustomResource} использование расширения. Одно место для задания CustomXamlResourceLoader.Current находится в конструкторе подкласса приложения, созданном для вас в шаблонах кода App.xaml.
  3. Теперь вы можете использовать {CustomResource} расширения в XAML, которые приложение загружает как страницы или из словарей ресурсов XAML.

CustomResource — это расширение разметки. Расширения разметки обычно реализуются, если требуется заменить значения атрибутов на нелитеральные значения или имена обработчиков и если требуется больше, чем простая настройка преобразователей типов на работу с определенными типами или свойствами. Все расширения разметки в XAML используют символы "{" и "}" в синтаксисе атрибутов, что является соглашением, с помощью которого обработчик XAML распознает, что расширение разметки должно обрабатывать атрибут.