6

我有一个应用程序,我必须在其中访问另一个打开的 WPF 窗口。在 WinForms 中,我可以使用:

MainWindow main = (MainWindow)Application.OpenForms["MainWindow"];

能够访问表单。现在在 WPF 中它不存在。我在这个网站上看到了其他相关的帖子,但是它使用了调用中不包含的Application.Window 。我只有 :

  • 当前的
  • 等于
  • 获取内容流
  • 获取Cookie
  • 获取远程流
  • 获取资源流
  • 负载组件
  • 参考平等
  • 资源组装
  • 设置Cookie

所以我的问题是,OpenForms 有不同的版本,还是有不同的方法。

4

3 回答 3

4

试试看:Application.Current。更具体地说,Application.Current.Windows.

于 2010-05-20T19:51:54.100 回答
0

我可能会迟到,但以防万一有人需要。如果您身边缺少 Application.OpenForms,那是因为您必须使用System.Windows.Forms.Application.OpenForms

例如:

FormCollection fc = System.Windows.Forms.Application.OpenForms;

fc 对象包含以下属性:Count 和 InnerList(非常有用)

希望对你有帮助,即使是2021年,我认为有人会需要这个信息(我搜索时在任何地方都没有看到)

于 2021-06-11T07:48:12.420 回答
0
Window2 wndw = new Window2();
wndw.Owner = this;

foreach (Window w in Application.Current.Windows)
{
    if (w.Name == wndw.Name)
    {
        if (w.IsActive)
        {
            w.Focus();
            return;
        }
        else
        {
            w.Show();
            return;
        }
    }
}
于 2021-07-11T17:31:31.393 回答