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% 完美,尽管您可能希望在关闭主窗口之前创建新窗口的对象并激活它。
请尝试以下方法。隐藏旧/当前窗口。显示新窗口并关闭隐藏的旧窗口。按照这种方法应用程序不会关闭。
SignInWindow signIn= new SignInWindow();
var oldWindow = Application.Current.Windows[0];
oldWindow.Hide();
signIn.ShowDialog();
this.Show();
oldWindow.Close();