如何以编程方式退出WPF应用程序?

在我使用C#(WinForms)的几年中,我从未使用过WPF。 但是,现在我喜欢WPF,但是我不知道当用户从File菜单中单击Exit菜单项时我该如何退出我的应用程序。

我努力了:

this.Dispose();
this.Exit();
Application.ShutDown();
Application.Exit();
Application.Dispose();

等等。 什么都没有


要退出您的应用程序,您可以致电

System.Windows.Application.Current.Shutdown();

Application.Shutdown方法的文档中所述,您还可以通过指定ShutdownMode来修改应用程序的关闭行为:

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

  • 当ShutdownMode设置为OnLastWindowClose。
  • 当ShutdownMode设置为OnMainWindowClose。
  • 当用户结束会话并且SessionEnding事件未处理时,或者未经取消处理。
  • 还请注意Application.Current.Shutdown(); 只能从创建Application对象的线程中调用,即通常是主线程。


    如果你真的需要它关闭,你也可以使用Environment.Exit(),但它不是优雅的(更像是结束这个过程)。

    使用方法如下:

    Environment.Exit(0)
    

    正如wuminqi所说, Application.Current.Shutdown(); 是不可逆的,我相信它通常用于在用户注销或关闭Windows时强制关闭应用程序。 相反,请在您的主窗口中调用this.close() 。 这与在窗口上按下“ALT-F4”或关闭[x]按钮相同。 这将导致所有其他拥有的窗口关闭并最终调用Application.Current.Shutdown(); 只要关闭行动没有取消。 请参阅关闭窗口的MSDN文档。

    另外,因为this.close()是可取消的,所以您可以在关闭事件处理程序中放入保存更改确认对话框。 只需为<Window Closing="...">创建一个事件处理程序,并相应地更改e.Cancel 。 (有关如何执行此操作的更多详细信息,请参阅MSDN文档)

    链接地址: http://www.djcxy.com/p/8911.html

    上一篇: How to exit a WPF app programmatically?

    下一篇: Typographic entities in WPF FlowDocument