WPF Application_Startup事件将永远运行,除非我制作一个窗口并显示它

本文关键字:一个 显示 窗口 非我 事件 Startup Application 永远 运行 WPF | 更新日期: 2023-09-27 18:23:35

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

如果你给这个应用程序提供了一个命令行参数,它会打开一个窗口,并在你关闭窗口后立即关闭;如果你不提供一个论点,它将不会关闭,必须通过任务管理器杀死。

WPF Application_Startup事件将永远运行,除非我制作一个窗口并显示它

检查http://msdn.microsoft.com/en-us/library/system.windows.application.shutdownmode.aspx.

默认关闭模式为OnLastWindowClose。

显然,这与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(); 
        } 
    } 
} 
相关文章: