如何在启动新窗口时关闭当前窗口(在代码中)

时间:2013-10-08 13:19:46

标签: c# wpf xaml

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 个答案:

答案 0 :(得分:15)

这样做:

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();

答案 1 :(得分:2)

你可以试试这个:

SignInWindow signIn= new SignInWindow();
Application.Current.Windows[0].Close();
signIn.ShowDialog();

答案 2 :(得分:1)

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

中的新页面/窗口
SignWindow sw = new SignWindow();
this.Content = sw;

答案 3 :(得分:0)

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