Freigeben über


Application.ResourceManagerRequested Ereignis

Definition

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

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 ResourceManagerverwendet 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 nullist, 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;
   };
}

Gilt für:

Weitere Informationen