在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