我目前正在编写一个 WPF 应用程序,它在 App.xaml.cs 中执行命令行参数处理(这是必要的,因为 Startup 事件似乎是获取这些参数的推荐方式)。根据我想在那时退出程序的论点,据我所知,应该在 WPF 中使用 Application.Current.Shutdown()
或在这种情况下(就像我一样)在当前应用程序对象中)也可能只是 this.Shutdown()
。
唯一的问题是这似乎无法正常工作。在 Shutdown()
行仍然被执行之后,我已经逐步调试了调试器和代码,这导致了方法中的错误,因为我预计应用程序不会活那么久。此外,主窗口(在 XAML 的 StartupUri 属性中声明)仍会加载。
我已经检查了该方法的文档,但在备注中没有发现任何内容告诉我根本不应该在 Application.Startup
或 Application
期间使用它.
那么,此时退出程序的正确方法是什么? e. Application
对象中的 Startup
事件处理程序?
最佳答案
首先从 App.xaml 中删除 StartupUri 属性,然后使用以下内容:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
bool doShutDown = ...;
if (doShutDown)
{
Shutdown(1);
return;
}
else
{
this.StartupUri = new Uri("Window1.xaml", UriKind.Relative);
}
}
关于c# - 从 App.xaml.cs 关闭 WPF 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/606043/