Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF app.run不工作?_C#_Wpf_Visual Studio 2008 - Fatal编程技术网

C# WPF app.run不工作?

C# WPF app.run不工作?,c#,wpf,visual-studio-2008,C#,Wpf,Visual Studio 2008,我才刚刚开始学习WPF,所以如果这个问题这么简单,请耐心听我说,但我无法弄清楚到底发生了什么 我试图完成的是先显示LoginWindow,然后在成功验证后,将显示主窗口。我没有使用Visual Studio自动创建的默认App.xaml,而是创建了一个自定义应用程序类。登录工作正常,但app.Run(win)不工作,它不显示我的主窗口,应用程序立即退出。这里有我遗漏的东西吗?我有一个winform应用程序,它具有几乎相同的启动类,并且工作得非常好。所以我不知道为什么这种方法在WPF中不起作用 p

我才刚刚开始学习WPF,所以如果这个问题这么简单,请耐心听我说,但我无法弄清楚到底发生了什么

我试图完成的是先显示LoginWindow,然后在成功验证后,将显示主窗口。我没有使用Visual Studio自动创建的默认App.xaml,而是创建了一个自定义应用程序类。登录工作正常,但app.Run(win)不工作,它不显示我的主窗口,应用程序立即退出。这里有我遗漏的东西吗?我有一个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;
        }
    }
}

显示对话框后,请尝试设置

app.MainWindow = win;
就在调用Application.Run()之前。我猜您的第一个对话框被自动设置为主窗口,从而在应用程序关闭后关闭

另外,在应用程序创建之后直接移动主窗口创建