如何以编程方式退出或关闭UWP应用程序? (Windows 10)

时间:2015-09-20 09:00:24

标签: c# windows-10 uwp

我需要它自己的退出按钮。请告诉我? 我试试这个:         this.Close(); //或退出不工作(

3 个答案:

答案 0 :(得分:55)

您可以使用CoreApplication课程。它提供了static exit method

public void CloseApp()
{
    CoreApplication.Exit();
}

但是,文档说明了以下内容:

  

注意请勿使用此方法在测试或调试方案之外关闭应用。

可悲的是,背后的原因尚不清楚。

此外,您可以使用老式的Application.Exit方法(非静态):

public void CloseApp()
{
    Application.Current.Exit();
}

在这里你还应该看一下备注:

  

使用此方法提供的UI可让用户退出您的应用。但是,通常情况下,您不应提供此UI,因为系统会自动管理应用程序生命周期并根据需要终止已暂停的应用程序以释放资源。

<强> TL; DR: 两个Exit方法都将终止应用,而不是暂停它。你应该问问自己这是否真的是你想要做的行动。

答案 1 :(得分:13)

这是退出UWP应用程序的受支持方式:

Application.Current.Exit();

然而,你应该使用它是相对罕见的。仔细考虑与您将使用此方法的场景相关的UI体验。例如,如果某个帐户已过期或远程管理的安全权限被撤销,则以编程方式退出应用程序可能是合理的。很少有你自己的&#34;退出&#34;按钮位于屏幕中间而不违反Windows指南。

答案 2 :(得分:1)

如果您要暂停而不是终止应用程序,请尝试使用ApplicationView.TryConsolidateAsync()。例如,如果应用仅实现一个ApplicationView,请尝试调用ApplicationView.GetForCurrentView().TryConsolidateAsync()关闭该应用。

此方法的明显好处是可以关闭应用程序,就像按标题栏中的关闭按钮一样,关闭过程优美,动画相同,并且应用程序被挂起而不是突然退出。

此外,当您通过这种方法关闭后再次启动应用程序时,应用程序会以与您在使用Application.Current.Exit()时关闭它的位置和大小相同的方式启动,并且CoreApplication.Exit()不会在相同的位置和大小。