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


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
Наследование
Object IInspectable CustomXamlResourceLoader
Атрибуты

Комментарии

CustomXamlResourceLoader поддерживает использование расширения разметки {CustomResource}. Это расширение разметки уникально для платформы XAML среда выполнения Windows (оно не существовало в технологиях XAML-предшественников, таких как Windows Presentation Foundation (WPF) и Microsoft Silverlight.

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

  1. Создайте производный пользовательский класс от CustomXamlResourceLoader и переопределите метод GetResource. Не вызывайте базовый класс в реализации.
  2. Задайте свойство CustomXamlResourceLoader.Current для ссылки на класс в логике инициализации. Это необходимо сделать до загрузки XAML-кода уровня страницы, который включает использование расширения {CustomResource}. Например, CustomXamlResourceLoader.Current можно задать в конструкторе подкласса Application, который создается в шаблонах кода программной части App.xaml.
  3. Теперь вы можете использовать расширения {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. Учитывая идентификатор ресурса и некоторые сведения о типе ожидаемого результата, возвращает запрошенный ресурс.

Применяется к

См. также раздел