C# 正在获取当前线程中所有窗口的列表

C# 正在获取当前线程中所有窗口的列表,c#,wpf,multithreading,c#-4.0,ui-thread,C#,Wpf,Multithreading,C# 4.0,Ui Thread,我正在WPF应用程序中启动一个新的UI线程。现在我正在搜索一种方法来获取该线程中所有窗口的列表,就像我将通过System.windows.Application.Current.windows获取主线程的列表一样。 NET框架中有什么东西吗?还是我必须自己实现它?当我必须自己实现它时,也许有人有一点示例代码?引用: 一旦在用户界面(UI)线程上实例化窗口,窗口引用就会自动添加到窗口中;不添加由工作线程创建的窗口。窗口引用在其关闭事件被处理之后和引发其关闭事件之前自动删除 默认情况下,添加到Win

我正在WPF应用程序中启动一个新的UI线程。现在我正在搜索一种方法来获取该线程中所有窗口的列表,就像我将通过
System.windows.Application.Current.windows
获取主线程的列表一样。 NET框架中有什么东西吗?还是我必须自己实现它?当我必须自己实现它时,也许有人有一点示例代码?

引用:

一旦在用户界面(UI)线程上实例化窗口,窗口引用就会自动添加到窗口中;不添加由工作线程创建的窗口。窗口引用在其关闭事件被处理之后和引发其关闭事件之前自动删除

默认情况下,添加到Windows属性的第一个项目将成为主窗口

此属性仅在创建应用程序对象的线程中可用


因此,工作线程创建的窗口似乎不会自动保存在任何集合中。我假设您在工作线程上创建了该窗口-因此您应该自己存储对该窗口的引用以供以后访问(您可以在Windows构造函数中通过向某个窗口管理器类添加
this
来实现这一点)

为什么要启动新的ui线程?这只会使事情复杂化。说来话长——但这是必要的。现在一切都很好-但我现在必须获得在第二个UI线程中打开的窗口,以将其设置为在第二个UI线程中打开的新窗口的所有者。
Application.Current.Windows
应该编辑,而不是仅返回当前线程的窗口。每个线程都应该有自己的应用程序。(我还没有检查)@SLaks:根据MSDN()的说法,它是每个AppDomain的,而不是每个thread的。然后我收回这个数字。我相信WinForms是每个线程的。