我正在开发一款Windows 10商店应用程序,但是我似乎找不到/学习如何检查用户是否按下了红色关闭按钮(在右上方)或通过按Alt+F4。基本上我想要的是这样的:
private void app_Close(object sender, CloseEventArgs e)
{
//saves some data in the app :D
}
我正在开发一款Windows 10商店应用程序,但是我似乎找不到/学习如何检查用户是否按下了红色关闭按钮(在右上方)或通过按Alt+F4。基本上我想要的是这样的:
private void app_Close(object sender, CloseEventArgs e)
{
//saves some data in the app :D
}
如果您有一个没有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"事件上添加处理程序来保存你的数据。一旦“Closing”完成,“Close”应该正常触发。
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();
};
}
Closing
事件存在,我想是这样的。 - dudeApplicationExecutionState
(了解更多)枚举,您可以找出是谁(Windows还是用户)关闭了应用程序。