我正在开发适用于Windows 10商店应用的应用,但我似乎无法找到/了解如何检查用户是否按下红色关闭按钮(位于右上角)或按 Alt < / kbd> + F4 。基本上我想要的是这样的:
private void app_Close(object sender, CloseEventArgs e)
{
//saves some data in the app :D
}
答案 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或您的用户)关闭了该应用。
希望它有所帮助!