CustomXamlResourceLoader Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Включает загрузку пользовательских словарей ресурсов в качестве источников. Переопределите GetResource , чтобы предоставить логику, которую средство синтаксического анализа XAML может использовать для поиска необходимых ресурсов во время загрузки.
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 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(Microsoft.UI.Xaml.WinUIContract), 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
- Наследование
- Атрибуты
Комментарии
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. Учитывая идентификатор ресурса и некоторые сведения о типе ожидаемого результата, возвращает запрошенный ресурс. |