Windows runtime 应用程序关闭事件

Windows runtime 应用程序关闭事件,windows-runtime,win-universal-app,Windows Runtime,Win Universal App,我正在用C#/XAML开发Windows10通用应用程序 我想实现这样一个策略,即每当用户关闭我的应用程序时(并且满足一些其他条件,但在这里是不相关的),都会显示一条警告 我的问题是,当应用程序关闭时,如何拦截和取消/处理事件?当用户决定关闭应用程序时,这很容易,例如按下我将在XAML中定义的按钮,但如果他按下Alt+F4怎么办?在Winforms中,这也很简单: private void Form1_Load(object sender, EventArgs e) {

我正在用C#/XAML开发Windows10通用应用程序

我想实现这样一个策略,即每当用户关闭我的应用程序时(并且满足一些其他条件,但在这里是不相关的),都会显示一条警告

我的问题是,当应用程序关闭时,如何拦截和取消/处理事件?当用户决定关闭应用程序时,这很容易,例如按下我将在XAML中定义的按钮,但如果他按下Alt+F4怎么办?在Winforms中,这也很简单:

    private void Form1_Load(object sender, EventArgs e)
    {
        this.FormClosing += Form1_FormClosing;
    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        e.Cancel = true;
    }

但是如何在Windows 10 universal应用程序中实现类似的效果呢?

恐怕没有取消关闭应用程序甚至延迟关闭的选项。挂起事件是您的应用程序在终止之前(如果发生)将收到的唯一指示。请查看
应用程序。暂停
事件:

恐怕没有取消关闭应用程序甚至延迟关闭的选项。挂起事件是您的应用程序在终止之前(如果发生)将收到的唯一指示。查看
应用程序。挂起
事件:

否,在Windows 10 Universal App(和Windows 8.1 Store App)中无法实现类似效果,因为在现代应用程序中,用户可以完全控制应用程序,应用程序无法阻止用户关闭应用程序

如Lukkha所述,如果用户关闭应用程序时需要处理某个问题,您可以在应用程序中处理。暂停,但默认情况下有时间限制,所有事情都应在5秒内完成。如果您想要5秒以上,则需要请求ExtendedExecutionSession


不,在Windows 10 Universal App(和Windows 8.1 Store App)中无法实现类似效果,因为在现代应用程序中,用户可以完全控制应用程序,并且应用程序无法阻止用户关闭应用程序

如Lukkha所述,如果用户关闭应用程序时需要处理某个问题,您可以在应用程序中处理。暂停,但默认情况下有时间限制,所有事情都应在5秒内完成。如果您想要5秒以上,则需要请求ExtendedExecutionSession