Application.Current.MainWindow.Close与Application.Current.Shutdown的区别

8

在关闭 WPF 应用程序时,使用 Application.Current.Shutdown() 是否不是最佳实践?

我有一个小型的多窗口应用程序,“shutdown” 对于所有退出命令似乎都很有效。但是,我被告知始终要使用 Application.Current.MainWindow.Close()

1个回答

7
MainWindow.Close 如果 ShutdownMode 没有被相应地设置,将不会起作用。你可以按照自己的意愿去做,只要符合人们的预期即可。
(Shutdown 将忽略某些 Closing 事件被取消的事实,这是需要考虑的一件事情) 同时:
引用:

在以下情况下,Windows Presentation Foundation (WPF) 会隐式调用 Shutdown:

  • 当 ShutdownMode 被设置为 OnLastWindowClose 时。

  • 当 ShutdownMode 被设置为 OnMainWindowClose 时。

  • 当用户结束会话且 SessionEnding 事件未被处理或未被取消处理时。


+1 指出了 ShutdownMode。我记不清我当时在做什么,但我有一个 WPF 应用程序,由于某些问题无法退出应用程序,所以必须将 ShutdownMode 设置为 OnExplicitShutdown - Rachel
@Rachel:听起来很奇怪,因为这是“最不可能”退出的模式,你需要手动退出。 - H.B.
谢谢,取消关闭是对我来说关键因素。 - Paul Matovich
我记不清具体细节了,但似乎与当我依赖应用程序退出时窗口未正确释放资源有关。 - Rachel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接