Page.OnNavigatedFrom(NavigationEventArgs) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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)
参数
可通过重写代码检查的事件数据。 事件数据代表已 卸载当前页的导航。
注解
在应用中的页面之间导航时,默认情况下会调用 OnNavigatedFrom。 你可以替代此方法,从 NavigationEventArgs 获取有关导航的信息,并执行应用所需的任何操作。 但是,应避免通过注销事件处理程序或执行其他清理来更改页面的状态,尤其是在暂停时调用 Frame.GetNavigationState 的应用中。
挂起时
除了在页面之间导航时调用外,如果 Application.Suspending 事件处理程序中调用 Frame.GetNavigationState,当应用暂停时,还会调用 OnNavigatedFrom 方法。
虽然使用 OnNavigatedFrom 注销在 OnNavigatedTo 中注册的事件处理程序似乎很自然,但如果应用将其状态保存在挂起时,这可能会导致问题。 在暂停时保存状态通常涉及调用 Frame.GetNavigationState,然后调用当前页上的 Page.OnNavigatedFrom,这指示页面保留/序列化它在后退导航或解除冻结时保留的任何状态。 如果应用被暂停,然后恢复 (且未终止并重新启动) ,则不会重新注册 OnNavigatedFrom 中注销的任何事件处理程序,因为不会在恢复时调用 Page.OnNavigatedTo。
若要避免此问题,应改用 On NavigationFrom 或 Unloaded 事件(仅在实际导航上调用)取消注册事件处理程序并执行其他清理。