如何检查窗户是否打开。有可能吗?
例如:
if (window.IsOpen)
{
// window is open
}
else
{
// window is not open
}
答案 0 :(得分:2)
检查当前应用程序中是否显示窗口:
if(System.Windows.Application.Current.Windows.Contains(yourWindow)) {
// the window has been shown
} else {
yourWindow.Show();
}
检查窗口是否未最小化:
if(yourWindow.WindowState != WindowState.Minimized) {
// the window is currently not minimized
} else {
yourWindow.WindowState = WindowState.Normal;
// or WindowState.Maximized
}
答案 1 :(得分:0)
您可以在窗口打开时保留对该窗口的引用。在这种情况下,你真的不需要在Windows中找到它。 否则,您必须根据给定窗口的类型获取它。
Window1 instance = Application.Current.Windows.OfType<Window1>().SingleOrDefault();
if (instance !=null)
{
instance.Show();
}
如果这可以是几种类型的窗口类型之一,并且您需要通用方法,那么它会更加繁琐。 这里我的类型有一个固定的值,但是你想要每个窗口都有一个按钮,每个窗口都有一个窗口的类型。
Type specificType = typeof(Window1);
Window instance = null;
foreach (Window win in Application.Current.Windows)
{
if(win.GetType() == specificType)
{
instance = win;
}
}
if (instance != null)
{
instance.Show();
}