我要检查按钮单击事件(打开newWindnow)。 如果newWindow已经打开,则应先将其关闭,然后再将其打开..因为我可以每次都为该newWindow创建动态内容。 这是Winform应用程序中的代码,但是WPF需要它
private void button_Click(object sender, EventArgs e)
{
using (Form fc= Application.OpenForms["newWindow"])
{
if (fc!=null){
fc.Close();
nw= new newWindow(Id, Ip, name);
}
else{
nw= new newWindow(Id, Ip, name);
}
}
nw.Show();
}
谢谢
答案 0 :(得分:1)
只需查看Application.Current.Windows
而不是Application.OpenForms
。 WPF等效于:
private void button_Click(object sender, RoutedEventArgs e)
{
var fc = Application.Current.Windows.OfType<newWindow>().FirstOrDefault();
if (fc != null)
{
fc.Close();
}
nw = new newWindow(Id, Ip, name);
nw.Show();
}
答案 1 :(得分:0)
How do I know if a WPF window is opened
您可以创建如下的帮助方法:
public static bool IsWindowOpen<T>(string name = "") where T : Window
{
return string.IsNullOrEmpty(name)
? Application.Current.Windows.OfType<T>().Any()
: Application.Current.Windows.OfType<T>().Any(w => w.Name.Equals(name));
}
用法:
if (Helpers.IsWindowOpen<Window>("MyWindowName"))
{
// MyWindowName is open
}
if (Helpers.IsWindowOpen<MyCustomWindowType>())
{
// There is a MyCustomWindowType window open
}
if (Helpers.IsWindowOpen<MyCustomWindowType>("CustomWindowName"))
{
// There is a MyCustomWindowType window named CustomWindowName open
}