UWP页面中的Closing事件是什么?

时间:2016-06-16 14:29:45

标签: win-universal-app

在WPF中,Closing标记上有<Window...个事件,我们可以在MainWindow_OnClosing中连接一些部署代码。

但是在UWP应用中没有这样的事件。关闭我猜是Unloaded,甚至不是Unloading

我刚把处理代码放在那里,但仍然感到担忧。 Unloaded事件应该用于此类工作吗?有什么我需要注意的吗?

1 个答案:

答案 0 :(得分:6)

根据MSDN,Window类有Closed个事件。 我在发布Closing组件的window事件时提到这一点,但请记住该事件的评论:

  

Window关闭时会发生Closed事件。但是,Windows Store   应用程序通常使用单个Window实例,而不是打开和关闭   额外的Window实例。

现在,当使用Frame主窗口的Pages导航系统时,我建议您使用OnNavigatedToOnNavigatedFrom事件来操纵所有初始化和处置该课程的功能。

您可能需要注意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;
}