Application.ResourceManagerRequested Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Tritt beim Starten eines neuen WinUI-Threads auf, damit Sie eine benutzerdefinierte IResourceManager
Implementierung bereitstellen können, die vom Framework zum Auflösen von Ressourcen-URIs verwendet werden kann.
// 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)
Ereignistyp
TypedEventHandler<IInspectable,ResourceManagerRequestedEventArgs>
Hinweise
Das WinUI-Framework instanziiert einen MRT Core ResourceManager , um Ressourcen-URIs aufzulösen. Weitere Informationen finden Sie unter Verwalten von Ressourcen mit MRT Core. Wenn Ihre App ein nicht standardmäßiges ResourceManager
Verhalten benötigt, um einen bestimmten Ressourcen-URI aufzulösen, können Sie Ihre eigene benutzerdefinierte Implementierung der IResourceManager-Schnittstelle bereitstellen, die anstelle des Standards ResourceManager
verwendet werden soll.
Behandeln Sie das ResourceManagerRequested
Ereignis, um das WinUI-Framework mit einem benutzerdefinierten IResourceManager bereitzustellen, um den vom Framework erstellten Standardressourcenmanager zu ersetzen. Instanziieren Sie im Ereignishandler Ihre benutzerdefinierte IResourceManager
Instanz, und weisen Sie sie der Eigenschaft ResourceManagerRequestedEventArgs.CustomResourceManager zu. Der Wert dieser Eigenschaft ist zunächst null
, und er wird vom Framework nur einmal pro Ereignisauslöse überprüft, nachdem alle registrierten Ereignishandler aufgerufen wurden. Wenn der Eigenschaftswert weiterhin null
ist, verwendet das Framework den Standard ResourceManager
.
Dieses Ereignis wird einmal pro WinUI-Thread während der Initialisierung ausgelöst. Wenn Sie dasselbe IResourceManager
für mehrere Threads verwenden, muss threadsicher IResourceManager
sein.
Es wird empfohlen, den Ereignishandler im App
Klassenkonstruktor zu registrieren, damit er während des ersten App-Starts verfügbar ist, wie hier gezeigt.
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;
};
}