Application.ResourceManagerRequested 事件
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在啟動新的 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)
事件類型
TypedEventHandler<IInspectable,ResourceManagerRequestedEventArgs>
備註
WinUI 架構會具現化 MRT Core 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;
};
}