2011-11-21 57 views
1

我在我的WPF應用程序中啓動一個新的UI線程。現在我正在尋找一種方法來獲得這個線程中所有窗口的列表 - 就像我將爲System.Windows.Application.Current.Windows的主線程獲取它。 .NET框架中是否存在某些東西,還是我必須自己實現它?當我必須自己實現它時,也許有人擁有一點樣本代碼?獲取當前線程中所有窗口的列表

+0

爲什麼要開始一個新的ui線程?這會讓事情變得複雜。 –

+0

這是一個很長的故事 - 但它是必要的。現在所有的工作都很好 - 但是現在我已經獲得了在第二個UI-Thread中打開的窗口,將它設置爲在此第二個UI-Thread中打開的新窗口的Owner。 – BennoDual

+0

'Application.Current.Windows'應該**編輯**不能僅返回當前線程的窗口。每個線程都應該有自己的應用程序。 (我沒有檢查) – SLaks

回答

2

引述MSDN

窗口引用被自動一旦一個窗口的用戶界面(UI)線程上實例化添加到視窗;不會添加由工作線程創建的窗口。窗口引用在處理Closing事件之後並且在其Closed事件引發之前會自動刪除。

默認情況下,添加到Windows屬性的第一項變爲MainWindow。

此屬性僅適用於創建應用程序對象的線程。

所以看起來工作線程創建的窗口不會自動保存在任何集合中。我假設你在工作線程上創建了這個窗口 - 所以你應該自己存儲一個引用以供以後訪問(你可以在Windows構造函數中通過將this添加到某個窗口管理器類中來實現)

相關問題