除非我创建一个窗口并显示它,否则WPF Application_Startup事件将永远运行

时间:2012-02-07 22:44:43

标签: c# .net wpf startup

WPF应用程序关闭如果我打开一个窗口然后关闭它,但是如果我打开没有窗口它会保持运行直到我明确关闭它。这是一个快速示例应用程序:

public partial class App : Application
{
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        if (e.Args.Count() != 0)
        {
            var mw = new MainWindow();
            mw.ShowDialog();
        }
    }
}

如果您为此应用程序提供命令行参数,它将打开一个窗口并在您关闭窗口时关闭;如果你不提供参数,它将不会关闭,必须通过任务管理器杀死。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

显然,这与WPF如何管理其关闭有关,需要设置ShutdownMode属性:

public partial class App : Application 
{ 
    private void Application_Startup(object sender, StartupEventArgs e) 
    {
        // this makes the behavior consistant, must call App.Shutdown(0) to exit
        this.ShutdownMode = System.Windows.ShutdownMode.OnExplicitShutdown;

        if (e.Args.Count() != 0) 
        { 
            var mw = new MainWindow(); 
            mw.ShowDialog(); 
        } 
    } 
}