当用户从文件菜单中单击退出菜单项时,应该如何退出应用程序?
我试过:
this.Dispose();
this.Exit();
Application.ShutDown();
Application.Exit();
Application.Dispose();
还有很多其他的。没有什么工作。
当用户从文件菜单中单击退出菜单项时,应该如何退出应用程序?
我试过:
this.Dispose();
this.Exit();
Application.ShutDown();
Application.Exit();
Application.Dispose();
还有很多其他的。没有什么工作。
当前回答
根据需要使用以下任何一种方法:
1.
App.Current.Shutdown();
OR
Application.Current.Shutdown();
2.
App.Current.MainWindow.Close();
OR
Application.Current.MainWindow.Close();
以上所有的方法都会调用Window类的关闭事件,并且执行可能会在某个时候停止(因为通常应用程序会设置像'are you sure?或“关闭前要保存数据吗?”,在窗口完全关闭之前)
3.但如果您想立即终止应用程序而不发出任何警告。使用下面的
Environment.Exit(0);
其他回答
如果你使用application . current . shutdown()来退出应用程序,你可能会得到一个System. current . shutdown()。调用线程不能访问该对象,因为它属于另一个线程。如果从不同的线程调用它。要解决这个问题,您可以像这样包装调用
Application.Current.Dispatcher.Invoke(() => Application.Current.Shutdown());
根据需要使用以下任何一种方法:
1.
App.Current.Shutdown();
OR
Application.Current.Shutdown();
2.
App.Current.MainWindow.Close();
OR
Application.Current.MainWindow.Close();
以上所有的方法都会调用Window类的关闭事件,并且执行可能会在某个时候停止(因为通常应用程序会设置像'are you sure?或“关闭前要保存数据吗?”,在窗口完全关闭之前)
3.但如果您想立即终止应用程序而不发出任何警告。使用下面的
Environment.Exit(0);
这应该可以达到目的:
Application.Current.Shutdown();
如果你感兴趣,这里有一些我认为有用的额外材料:
申请详情。当前的
WPF应用程序生命周期
要退出应用程序,您可以调用
System.Windows.Application.Current.Shutdown();
如应用程序文档中所述。你也可以通过指定ShutdownMode来修改应用程序的关机行为:
在以下情况下,Windows Presentation Foundation (WPF)会隐式调用Shutdown: 当ShutdownMode设置为OnLastWindowClose时。 当关机模式设置为OnMainWindowClose时。 当用户结束会话,而SessionEnding事件未被处理或在未取消的情况下被处理时。
请注意Application.Current.Shutdown();只能从创建Application对象的线程调用,即通常是主线程。
不应该有Application.ShutDown();或. exit()消息。
Application是一个静态类。它不指向当前应用程序。 你需要进入当前应用程序,然后像这样关闭它:
Application.Current.Shutdown();