Application.ResourceManagerRequested イベント
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
リソース 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)
イベントの種類
TypedEventHandler<IInspectable,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;
};
}