CustomXamlResourceLoader Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Включает загрузку пользовательских словарей ресурсов в качестве источников. Переопределите GetResource , чтобы предоставить логику, которую средство синтаксического анализа XAML может использовать для поиска необходимых ресурсов во время загрузки.
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CustomXamlResourceLoader
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class CustomXamlResourceLoader
Public Class CustomXamlResourceLoader
- Наследование
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
Комментарии
CustomXamlResourceLoader поддерживает использование расширения разметки {CustomResource}
. Это расширение разметки уникально для платформы XAML среда выполнения Windows (оно не существовало в исходных технологиях XAML, таких как Windows Presentation Foundation (WPF) и Microsoft Silverlight.)
Использование {CustomResource}
не работает по умолчанию (базовая реализация GetResource не закончена). Чтобы создать допустимую ссылку на {CustomResource}
, сделайте следующее:
- Создайте производный пользовательский класс от CustomXamlResourceLoader и переопределите метод GetResource. Не вызывайте базовый класс в реализации.
- Задайте свойство CustomXamlResourceLoader.Current для ссылки на класс в логике инициализации. Это необходимо сделать до загрузки XAML-кода уровня страницы, который включает использование расширения
{CustomResource}
. Например, CustomXamlResourceLoader.Current можно задать в конструкторе подкласса Application, который создается в шаблонах кода программной части App.xaml. - Теперь вы можете использовать расширения
{CustomResource}
в коде XAML, который приложение загружает как страницы, либо в словарях ресурсов XAML.
Расширение разметки {CustomResource} можно использовать из XAML аналогично расширению разметки {StaticResource}, которое выполняет встроенный поиск ресурсов из различных расположений ResourceDictionary . Разница заключается в том, что само приложение реализует логику поиска ресурсов для использования расширения разметки {CustomResource} , предоставляя пользовательский загрузчик ресурсов. Для реализации пользовательского загрузчика ресурсов приложение должно предоставить класс, производный от CustomXamlResourceLoader, и переопределить метод GetResource . Приложение должно зарегистрировать свой настраиваемый загрузчик ресурсов, задав для статического свойства CustomXamlResourceLoader.Current экземпляр класса пользовательского загрузчика ресурсов. Эту регистрацию необходимо выполнить в потоке пользовательского интерфейса XAML перед анализом XAML, использующего расширение разметки {CustomResource}. Если приложение использует несколько потоков пользовательского интерфейса, для каждого из них необходимо выполнить отдельную регистрацию.
Способ хранения ресурсов CustomXamlResourceLoader, вероятно, вообще не связан с ResourceDictionary . Как правило, в дополнение к необходимым переопределениям, класс CustomXamlResourceLoader предоставляет внутренние или открытые методы, которые позволяют хранить, использовать ключи и иным образом работать с элементами ресурсов в базовой коллекции.
Конструкторы
CustomXamlResourceLoader() |
Инициализирует новый экземпляр класса CustomXamlResourceLoader . |
Свойства
Current |
Возвращает активный экземпляр CustomXamlResourceLoader . |
Методы
GetResource(String, String, String, String) |
При переопределении в производном классе задает логику поиска ресурсов для этого Объекта CustomXamlResourceLoader. Учитывая идентификатор ресурса и некоторые сведения о типе ожидаемого результата, возвращает запрошенный ресурс. |