Page.OnNavigatedFrom(NavigationEventArgs) 方法

定义

在页面卸载后立即调用,不再是父 Frame 的当前源。

protected:
 virtual void OnNavigatedFrom(NavigationEventArgs ^ e) = OnNavigatedFrom;
void OnNavigatedFrom(NavigationEventArgs const& e);
protected virtual void OnNavigatedFrom(NavigationEventArgs e);
function onNavigatedFrom(e)
Protected Overridable Sub OnNavigatedFrom (e As NavigationEventArgs)

参数

e
NavigationEventArgs

可通过重写代码检查的事件数据。 事件数据代表已 卸载当前页的导航。

注解

在应用中的页面之间导航时,默认情况下会调用 OnNavigatedFrom。 你可以替代此方法,从 NavigationEventArgs 获取有关导航的信息,并执行应用所需的任何操作。 但是,应避免通过注销事件处理程序或执行其他清理来更改页面的状态,尤其是在暂停时调用 Frame.GetNavigationState 的应用中。

挂起时

除了在页面之间导航时调用外,如果 Application.Suspending 事件处理程序中调用 Frame.GetNavigationState,当应用暂停时,还会调用 OnNavigatedFrom 方法。

虽然使用 OnNavigatedFrom 注销在 OnNavigatedTo 中注册的事件处理程序似乎很自然,但如果应用将其状态保存在挂起时,这可能会导致问题。 在暂停时保存状态通常涉及调用 Frame.GetNavigationState,然后调用当前页上的 Page.OnNavigatedFrom,这指示页面保留/序列化它在后退导航或解除冻结时保留的任何状态。 如果应用被暂停,然后恢复 (且未终止并重新启动) ,则不会重新注册 OnNavigatedFrom 中注销的任何事件处理程序,因为不会在恢复时调用 Page.OnNavigatedTo。

若要避免此问题,应改用 On NavigationFromUnloaded 事件(仅在实际导航上调用)取消注册事件处理程序并执行其他清理。

适用于