通用Windows应用商店应用关闭时如何执行代码?

时间:2015-12-18 18:12:10

标签: c# xaml windows-10 win-universal-app

我正在开发适用于Windows 10商店应用的应用,但我似乎无法找到/了解如何检查用户是否按下红色关闭按钮(位于右上角)或按 Alt < / kbd> + F4 。基本上我想要的是这样的:

private void app_Close(object sender, CloseEventArgs e)
{
     //saves some data in the app :D
}

2 个答案:

答案 0 :(得分:5)

:编辑:。

如果你有一个没有MainWindow对象的通用应用程序,你可能想要进入“暂停”事件:

appObject.Suspending += (s, a) =>
        {
            SaveTheData(); // I really like my data and want it for later too
        };

public App()
    {
    /*
        stuff
     */
    Suspending += (s, a) =>
        {
            SaveTheData(); // I really like my data and want it for later too
        };
    }

:原文:。

在MainWindow“Closing”事件中添加处理程序以保存数据。 “结束”完成后,“关闭”应该正常启动。

theMainWindowObject.Closing += (s,a) =>
    {
        SaveTheData(); // It's precious!
    };

我在一个较小的应用程序中有类似的东西,在MainWindow的构造函数中,我把上面的代码段替换为“theMainWindowObject”代替“this”,以便它自己引用

所以我有:

public MainWindow()
    {
    // Note: "this." isn't necessary here but it helps me with mental accounting
    this.Closing += (s, a) =>
        {
            Save();
        };
    }

如果您只是保存一个或两个属性并且没有任何疯狂的逻辑,那么您可以将它放在处理程序中:

public MainWindow()
    {
    Closing += (s, a) =>
        {
            Properties.Settings.Default.SettingsPopupX = mySettingsPopupObject.GetX();
            Properties.Settings.Default.SettingsPopupY = mySettingsPopupObject.GetY();
            Properties.Settings.Default.Save();
        };
    }

答案 1 :(得分:0)

如果您想管理您的Application Lifecycle,请查看此MSDN文章:https://msdn.microsoft.com/en-us/library/windows/apps/mt243287.aspx 通常,您在Windows Apps中没有“关闭”事件。当Windows或您的用户想要关闭它时,您的应用程序将被暂停。使用ApplicationExecutionState (see more)枚举,您可以找到谁(Windows或您的用户)关闭了该应用。

希望它有所帮助!