WPF版本的Application.OpenForms

时间:2010-05-20 19:26:27

标签: c# wpf openform

我有一个应用程序,我将不得不进入另一个打开的WPF窗口。在WinForms中,我能够使用:

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

能够访问表单。现在在WPF中它不存在。我在此网站上看到了其他post,但它使用的 Application.Window 未包含在调用中。我只是:

  • 电流
  • 等于
  • GetContentStream
  • 的getCookie
  • GetRemoteStream
  • GetResourceStream
  • LoadComponet
  • RefrenceEquals
  • ResourceAssembly
  • setCookie方法

所以我的问题是,OpenForms是否有不同的版本,或者只是采用不同的方式。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

例如:

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

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

希望有帮助,即使是2021年,我还以为有人会需要这个信息(我搜索的时候没有在任何地方看到过)

答案 2 :(得分: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;
        }
    }
}