1

WPF アプリケーションで新しい UI スレッドを開始しています。現在、このスレッドのすべてのウィンドウのリストを取得する方法を探していますSystem.Windows.Application.Current.Windows。.NET-Framework に何かありますか、それとも自分で実装する必要がありますか? 私が自分で実装しなければならないとき、おそらく誰かがサンプルコードを少し持っていますか?

4

1 に答える 1

2

MSDNを引用するには:

ユーザー インターフェイス (UI) スレッドでウィンドウがインスタンス化されるとすぐに、ウィンドウ参照が Windows に自動的に追加されます。ワーカー スレッドによって作成されたウィンドウは追加されません。Window 参照は、その Closing イベントが処理された後、その Closed イベントが発生する前に自動的に削除されます。

デフォルトでは、Windows プロパティに追加された最初の項目が MainWindow になります。

このプロパティは、Application オブジェクトを作成したスレッドからのみ使用できます。

そのため、ワーカー スレッドによって作成されたウィンドウは、どのコレクションにも自動的に保持されないようです。ワーカースレッドでそのウィンドウを作成すると仮定します-したがって、後でアクセスできるように自分で参照を保存する必要があります(thisウィンドウマネージャークラスに追加することにより、Windowsコンストラクターでそれを行うことができます)

于 2011-11-21T18:53:30.943 に答える