Application.ResourceManagerRequested 事件

定义

在启动新的 WinUI 线程期间发生,以便提供框架用于解析资源 URI 的自定义 IResourceManager 实现。

// Register
event_token ResourceManagerRequested(TypedEventHandler<IInspectable, ResourceManagerRequestedEventArgs const&> const& handler) const;

// Revoke with event_token
void ResourceManagerRequested(event_token const* cookie) const;

// Revoke with event_revoker
Application::ResourceManagerRequested_revoker ResourceManagerRequested(auto_revoke_t, TypedEventHandler<IInspectable, ResourceManagerRequestedEventArgs const&> const& handler) const;
public event TypedEventHandler<object,ResourceManagerRequestedEventArgs> ResourceManagerRequested;
function onResourceManagerRequested(eventArgs) { /* Your code */ }
application.addEventListener("resourcemanagerrequested", onResourceManagerRequested);
application.removeEventListener("resourcemanagerrequested", onResourceManagerRequested);
- or -
application.onresourcemanagerrequested = onResourceManagerRequested;
Public Custom Event ResourceManagerRequested As TypedEventHandler(Of Object, ResourceManagerRequestedEventArgs) 

事件类型

注解

WinUI 框架实例化 MRT 核心 ResourceManager 以解析资源 URI。 有关详细信息,请参见使用 MRT Core 管理资源。 如果你的应用需要默认 ResourceManager 未提供的非标准行为来解析特定的资源 URI,则可以提供自己的 IResourceManager 接口的自定义实现,以使用而不是默认 ResourceManager

ResourceManagerRequested处理 事件,为 WinUI 框架提供自定义 IResourceManager,以替换框架创建的默认 ResourceManager。 在事件处理程序中,实例化自定义 IResourceManager 并将其分配给 ResourceManagerRequestedEventArgs.CustomResourceManager 属性。 此属性的值最初 null为 ,并且只有在调用所有已注册的事件处理程序后,才会由框架检查每个事件引发一次。 如果属性值仍 null为 ,则框架将使用默认 ResourceManager的 。

初始化期间,每个 WinUI 线程引发一次此事件。 如果对多个线程使用相同的 IResourceManager ,则必须 IResourceManager 是线程安全的。

建议在类构造函数中 App 注册 事件处理程序,以便它在初始应用启动期间可用,如下所示。

public App()
{
   this.InitializeComponent();

   ResourceManagerRequested += (_, e) =>
   {
      // CreateResourceManager() is a custom method you
      // create that returns an instance of IResourceManager.
      IResourceManager resourceManager = CreateResourceManager();
      e.ResourceManager = resourceManager;
   };
}

适用于

另请参阅