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

Ale*_*SRG 25 c# windows-10 uwp

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

Her*_*rdo 55

你可以使用这CoreApplication门课.它提供了一个静态退出方法:

public void CloseApp()
{
    CoreApplication.Exit();
}
Run Code Online (Sandbox Code Playgroud)

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

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

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


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

public void CloseApp()
{
    Application.Current.Exit();
}
Run Code Online (Sandbox Code Playgroud)

在这里你还应该看看这些评论:

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

tl; dr: 两种Exit方法都将终止应用程序,而不是暂停它.您应该问问自己这是否真的是您想要做的动作.

  • 原因是违反UX准则以编程方式关闭应用程序 (2认同)

Lad*_*adi 14

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

Application.Current.Exit();
Run Code Online (Sandbox Code Playgroud)

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

  • "很少有你自己的"退出"按钮位于屏幕中间......" - 这实际上非常普遍,几乎毫无例外,每个游戏都有一个退出按钮! (7认同)
  • (1)该方法不起作用.它似乎破坏了主窗口,但调试器告诉我程序仍在运行.(2)如果用户没有登录凭据,您还要对该应用程序做什么?你会让屏幕永远坐在那里吗? (3认同)
  • 您还如何退出仅全屏运行的桌面应用程序? (2认同)

Sou*_*unt 9

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

这种方法的明显好处是应用程序关闭,就像按标题栏中的关闭按钮一样,关闭很优雅,动画是相同的,并且应用程序被暂停而不是突然退出。

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

  • +1。不知道这个方法。在文档中,它说“此方法是一种编程方法,相当于用户为应用程序视图启动关闭手势。”,因此它似乎比其他方法更好。 (3认同)