2011-11-21 81 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添加到某个窗口管理器类中来实现)

相关问题