Share via


Application.ResourceManagerRequested イベント

定義

リソース URI を解決するためにフレームワークによって使用されるカスタム IResourceManager 実装を提供するために、新しい WinUI スレッドの起動時に発生します。

// 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 Core ResourceManager をインスタンス化してリソース URI を解決します。 詳細については、「MRT Core を使用してリソースを管理する」を参照してください。 特定のリソース URI を解決するために、既定ResourceManagerでは提供されない標準以外の動作がアプリに必要な場合は、既定ResourceManagerの ではなくを使用する IResourceManager インターフェイスの独自のカスタム実装を提供できます。

イベントを ResourceManagerRequested 処理して、WinUI フレームワークにカスタム IResourceManager を提供し、フレームワークが作成する既定の ResourceManager を置き換えます。 イベント ハンドラーで、カスタム IResourceManager をインスタンス化し、 ResourceManagerRequestedEventArgs.CustomResourceManager プロパティに割り当てます。 このプロパティの値は最初 nullは であり、登録されているすべてのイベント ハンドラーが呼び出された後、イベント発生ごとに 1 回だけフレームワークによってチェックされます。 プロパティ値がまだ nullの場合、フレームワークでは既定 ResourceManagerの が使用されます。

このイベントは、初期化中に WinUI スレッドごとに 1 回発生します。 複数のスレッドで同じもの 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;
   };
}

適用対象

こちらもご覧ください