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}。 此标记扩展对于Windows 运行时 XAML 框架是唯一的, (它不存在于Windows Presentation Foundation (WPF) 和 Microsoft Silverlight.)

{CustomResource}默认情况下, (GetResource 的基本实现不完整) ,则用法不起作用。 要进行有效的 {CustomResource} 引用,必须执行以下每一个步骤:

  1. 从 CustomXamlResourceLoader 派生自定义类,并替代 GetResource 方法。 不要在实现中调用基类。
  2. 设置 CustomXamlResourceLoader.Current 以在初始化逻辑中引用你的类。 必须在加载包括 {CustomResource} 扩展在内的任何页面级 XAML 之前执行此操作。 设置 CustomXamlResourceLoader.Current 的一个位置是,App.xaml 代码隐藏模板中为你生成的 Application 子类构造函数。
  3. 现在你可以在你的应用加载为页面的 XAML 中,或从 XAML 资源词典内使用 {CustomResource} 扩展。

{CustomResource} 标记扩展 可以通过与 {StaticResource} 标记扩展类似的方式从 XAML 使用,后者从各种 ResourceDictionary 位置执行内置资源查找。 区别在于,应用本身通过提供自定义资源加载程序来实现 {CustomResource} 标记扩展 使用的资源查找逻辑。 若要实现自定义资源加载程序,应用程序必须提供派生自 CustomXamlResourceLoader 的类并重写 GetResource 方法。 应用必须通过将静态属性 CustomXamlResourceLoader.Current 设置为其自定义资源加载程序类的实例来注册其自定义资源加载程序。 在分析使用 {CustomResource} 标记扩展的 XAML 之前,必须在 XAML UI 线程上完成此注册。 如果应用程序使用多个 UI 线程,则必须在每个线程上单独注册。

CustomXamlResourceLoader 存储其资源的方式可能与 ResourceDictionary 完全无关。 通常,除了必需的重写之外,CustomXamlResourceLoader 类还会提供内部或公共方法,这些方法支持存储、密钥处理以及以其他方式处理基础集合中的资源项。

构造函数

CustomXamlResourceLoader()

初始化 CustomXamlResourceLoader 类的新实例。

属性

Current

返回活动的 CustomXamlResourceLoader 实例。

方法

GetResource(String, String, String, String)

在派生类中重写时,指定此 CustomXamlResourceLoader 的资源查找逻辑。 给定资源 ID 和有关预期结果的一些类型信息,将返回请求的资源。

适用于

另请参阅