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

Bla*_*ise 4 win-universal-app

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

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

我只是将我的处理代码放在那里,但仍然感到担忧.是否Unloaded应该为此类工作举办活动?有什么我需要注意的吗?

Nah*_*nni 6

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

窗口关闭时发生Closed事件.但是,Windows应用商店应用通常使用单个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;
}
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,当您关闭特定“Page”可见的应用程序时,这似乎不会被调用。 (4认同)