在WPF
没有在Application
类开放Windows
的集合,你可以做一个辅助方法检查窗口是否打开。
下面是一个例子,它将检查某个Type
的Window
或某个名称的Window
是否打开,或者两者都有。
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
}
感谢您的更新! window.ShowDialog()正是我需要的! – 2018-01-30 16:51:57