Application.ResourceManagerRequested Event
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Occurs during startup of a new WinUI thread to let you provide a custom IResourceManager
implementation to be used by the framework for resolving resource URIs.
// 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)
Event Type
TypedEventHandler<IInspectable,ResourceManagerRequestedEventArgs>
Remarks
The WinUI framework instantiates an MRT Core ResourceManager to resolve resource URIs. For more info, see Manage resources with MRT Core. If your app needs non-standard behavior not provided by the default ResourceManager
in order to resolve a particular resource URI, you can provide your own custom implementation of the IResourceManager interface to use instead of the default ResourceManager
.
Handle the ResourceManagerRequested
event to provide the WinUI framework with a custom IResourceManager to replace the default ResourceManager that the framework creates. In the event handler, instantiate your custom IResourceManager
and assign it to the ResourceManagerRequestedEventArgs.CustomResourceManager property. The value of this property is initially null
, and it is only checked by the framework once per event raise after all registered event handlers have been invoked. If the property value is still null
, then the framework will use the default ResourceManager
.
This event is raised once per WinUI thread during initialization. If you use the same IResourceManager
for multiple threads, then the IResourceManager
must be thread-safe.
We recommend that you register the event handler in the App
class constructor so that it is available during initial app launch, as shown here.
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;
};
}