在WPF中,Closing
标记上有<Window...
个事件,我们可以在MainWindow_OnClosing
中连接一些部署代码。
但是在UWP应用中没有这样的事件。关闭我猜是Unloaded
,甚至不是Unloading
。
我刚把处理代码放在那里,但仍然感到担忧。 Unloaded
事件应该用于此类工作吗?有什么我需要注意的吗?
答案 0 :(得分:6)
根据MSDN,Window类有Closed个事件。
我在发布Closing
组件的window
事件时提到这一点,但请记住该事件的评论:
Window关闭时会发生Closed事件。但是,Windows Store 应用程序通常使用单个Window实例,而不是打开和关闭 额外的Window实例。
现在,当使用Frame主窗口的Pages导航系统时,我建议您使用OnNavigatedTo和OnNavigatedFrom事件来操纵所有初始化和处置该课程的功能。
您可能需要注意OnNavigationFrom
,因为它在页面被卸载之前立即被调用,并且不再是父帧的当前源。
一个非常简单的例子:
Windows.ApplicationModel.Resources.ResourceLoader loader;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
loader = new Windows.ApplicationModel.Resources.ResourceLoader();
var navigationPageContentFormat = loader.GetString("NavigationPageContent");
var navigationPageContentWhenEmpty = loader.GetString("NavigationPageContentWhenEmpty");
this.ParameterTextBlock.Text = String.Format(navigationPageContentFormat, e.Parameter?.ToString() ?? navigationPageContentWhenEmpty);
}
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
loader = null;
}