13
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();
    }
4

4 回答 4

25

只需这样做:

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();
于 2013-10-08T13:23:33.667 回答
3

你可以试试这个:

SignInWindow signIn= new SignInWindow();
Application.Current.Windows[0].Close();
signIn.ShowDialog();
于 2013-10-08T13:28:12.207 回答
1

这是一种重定向代码。它将关闭当前窗口/页面并重定向到 wpf 中的新页面/窗口

SignWindow sw = new SignWindow();
this.Content = sw;
于 2016-11-19T07:52:19.923 回答
0

Mike Perrenoud 的回答是 100% 完美,尽管您可能希望在关闭主窗口之前创建新窗口的对象并激活它。

于 2017-02-09T15:36:30.287 回答