我有一个WPF窗口,我从一个winform应用程序内启动。我只想让该WPF窗口的实例一次打开,并且不会在该用户尝试再次打开时警告该用户。如何确保一次只打开一个WPF窗口?
不过,我有试图寻找该WPF窗口是否打开,因为正在从一个winform推出了窗口的问题。对于一个winform搜索时我normaly做的是,我要寻找的那个的winform现有的Application.Current.OpenForms
的任何实例,当在WPF我搜索Application.Current.Windows
我的问题是,从内部启动时System.Windows.Application.Current
为null一个winform,所以我不能以这种方式搜索WPF窗口。有没有更好的方法来搜索打开窗口的现有实例?
我的代码:
if (System.Windows.Application.Current != null)
{
foreach (System.Windows.Window win in System.Windows.Application.Current.Windows)
{
if (win is frmCaseWpf)
{
MessageBox.Show("You may have only one active case open at a time.", "Open Case",
MessageBoxButtons.OK,
MessageBoxIcon.Stop);
win.WindowState = System.Windows.WindowState.Normal;
win.Focus();
win.Activate();
return;
}
}
}
我使用.NET 4.5和'this.OpenWindow'不存在。有其他选择吗? – valsidalv 2013-11-20 04:16:13