WPF app.run不工作?

时间:2010-12-03 06:22:41

标签: c# wpf visual-studio-2008

我只是开始学习WPF,所以如果这个问题如此简单,请耐心等待,但我无法弄清楚究竟发生了什么。

我想要完成的是首先显示一个LoginWindow,然后在成功验证后显示MainWindow。我没有使用Visual Studio自动创建的默认App.xaml,而是创建了一个自定义应用程序类。登录工作完全正常,但app.Run(win)无效,它不显示我的MainWindow,应用程序立即退出。这里有什么我想念的吗?我有一个winform应用程序与几乎相同的启动类,它工作得很好。所以我不知道为什么这种方法在WPF中不起作用。

public class Startup
{
    [STAThread()]
    static void Main()
    {
        Application app = new Application();
        WinLogin login = new WinLogin();
        bool showLogin = true;
        while (showLogin)
        {
            login.ShowDialog();
            if (login.DialogResult.HasValue && login.DialogResult == true)
            {
                MainWindow win = new MainWindow();
                app.Run(win);
                if (!win.LogOff)
                    showLogin = false;
            }
            else
                showLogin = false;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

显示对话框后,尝试设置

app.MainWindow = win;

在调用Application.Run()之前。我猜你的第一个对话框自动设置为主窗口,因此在应用程序关闭后关闭它。

此外,在创建应用程序后直接移动MainWindow创建。