我如何决定是否创建一个新的窗口,当我点击一个按钮
本文关键字:一个 窗口 按钮 创建 是否 何决定 决定 | 更新日期: 2023-09-27 18:03:53
在启动应用程序时出现一个小窗口(winReset)。按完成键后,主窗口打开。
然而,主窗口包含一个按钮,当点击时,再次打开winReset。当你点击完成在winReset这一次,我不想要一个新的主窗口的实例,不像第一次。我只是想关闭winReset
我在这里后面的代码有麻烦。
这是我到目前为止在我的winReset后面的代码,但它不起作用:
private void btnClickDone(object sender, RoutedEventArgs e)
{
Window win = App.Current.Windows.OfType<Window>().SingleOrDefault(w => w.Name == "main");
if (win.ShowDialog() == true)
{
this.Close();
}
else
{
MainWindow main = new MainWindow();
App.Current.MainWindow = main;
this.Close();
main.Show();
}
}
我要做的是创建一个新的主窗口,只有当一个不存在。如果有,那么只需关闭当前的winReset。我不知道为什么我在这个问题上挣扎,但我似乎不能弄清楚。任何帮助吗?
你可以像这样检查App.Current.MainWindow:
if (App.Current.MainWindow != null && App.Current.MainWindow.GetType() == typeof(MainWindow))
{
this.Close();
}
else
{
MainWindow main = new MainWindow();
App.Current.MainWindow = main;
this.Close();
main.Show();
}
您可以将main创建为本地对象,然后检查它是否为空。
Private MainWindow _main = null;
然后在处理程序——
if(_main == null)
_main = new MainWindow();
App.Current.MainWindow = _main;
this.Close();
_main.Show();
当你想要遵循你的方法时,这应该对你有用:
Window win = App.Current.Windows.OfType<Window>().SingleOrDefault(w => w.DependencyObjectType.Name == "MainWindow");
if (win != null)
{
this.Close();
}
else
{
MainWindow main = new MainWindow();
App.Current.MainWindow = main;
this.Close();
main.Show();
}