如何以编程方式退出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:
还请注意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文档)