如何在启动新窗口时关闭当前窗口(在代码中)
SignInWindow signIn= new SignInWindow(); signIn.ShowDialog();
上面的代码在我的MainWindow类中。
显示新窗口时,我希望关闭当前窗口。 什么是最好的方法呢?
我的应用程序是一个C#WPF应用程序
我试过这个但是当它被调用时,我的应用程序退出了
static private void CloseAllWindows() { for (int intCounter = App.Current.Windows.Count - 1; intCounter >= 0; intCounter--) App.Current.Windows[intCounter].Close(); }
这样做:
this.Close(); SignInWindow signIn = new SignInWindow(); signIn.ShowDialog();
请记住,实际上将关闭 MainWindow
。 如果您真正想做的就是隐藏它,那么这样做:
this.Hide(); SignInWindow signIn = new SignInWindow(); signIn.ShowDialog(); this.Show();
这将在登录表单启动时隐藏 MainWindow
,但在完成后再显示它。
好的,显然你是从一个不在表单之外的static class
中启动这个表单。 这本来是非常相关的信息。 但解决方案是:
var w = Application.Current.Windows[0]; w.Hide(); SignInWindow signIn = new SignInWindow(); signIn.ShowDialog(); w.Show();
你可以试试这个:
SignInWindow signIn= new SignInWindow(); Application.Current.Windows[0].Close(); signIn.ShowDialog();
这是一种重定向代码。 它将关闭当前窗口/页面并重定向到wpf中的新页面/窗口
SignWindow sw = new SignWindow(); this.Content = sw;
Mike Perrenoud的答案是100%完美,尽管您可能想要在关闭主窗口之前创建新窗口的对象并将其激活。