我目前正在编写一个WPF应用程序,它在App.xaml.cs中执行命令行参数处理(这是必要的,因为启动事件似乎是获得这些参数的推荐方式)。基于参数,我想在那个点已经退出程序,据我所知,应该在WPF中使用Application.Current.Shutdown()
完成,或者在本例中(就像我在当前应用程序对象中一样)可能也只使用this.Shutdown()
。
唯一的问题是,这似乎不工作的权利。我已经逐步通过调试器和代码后,Shutdown()
行仍然得到执行,导致错误之后的方法,因为我预计应用程序不会生存那么长时间。而且主窗口(声明在StartupUri属性的XAML)仍然得到加载。
我已经检查了该方法的文档,在注解中没有发现任何东西告诉我不应该在Application.Startup
或Application
期间使用它。
那么,在那个时候退出程序的正确方法是什么,例如Application
对象中的Startup
事件处理程序?
4条答案
按热度按时间w1jd8yoj1#
首先从App.xaml中移除StartupUri属性,然后使用以下命令:
rur96b6h2#
如果从具有MainWindow的应用程序的app.xaml中移除StartupUri,则需要确保在OnStartup方法中进行以下调用,否则应用程序将不会在MainWindow关闭时终止。
@Frank Schwieterman,这些东西可能会帮助您解决控制台窗口问题。
vxqlmq5t3#
为了避免设置
StartupUri
和ShutdownMode
属性,我做了一点不同的操作。首先编辑App.xaml
文件,并将StartupUri
替换为Startup
:然后将
Application_Startup
与OnExit
沿着添加到代码中:6qftjkof4#
写入应用程序启动: