现在的位置: 首页 > 综合 > 正文

WinRT: 观察LayoutAwarePage的Parameter,pageState和Mode

2013年03月03日 ⁄ 综合 ⁄ 共 582字 ⁄ 字号 评论关闭

这是另一篇文章的续集:

WinRT/Metro: NavigationCacheMode.Disabled和LayoutAwarePage

 

有些人反应看了上述文章仍然对一些Page或者是LayoutAwarePage的参数变化有些不清楚。我觉得配些图就更清晰了,我又把上面那篇文章用到的程序加入了输出Parameter,pageState和Mode的显示。当然,就是在LayoutAwarePage的LoadState方法和Page的OnNavigatedTo方法中加入输出代码,很简单的,代码就不贴了,请参考上文工程代码。

 

那么当程序第一次启动后,第一次加载页面:

image

第一次加载页面NavigationMode为New,同时parameter和pageState都也是null。

 

设置好数据,创建同一个类型的下一个页面:

image

 

新页面被创建,parameter会上上一个页面传入的数据,所以不是null。

 

最后选择后退,返回上一个页面:

image

 

此时,pageState不是null,因此此时SuspensionManager的FrameSessionState相对当前Frame中当前Page的名称(根据Frame的BackStackDepth属性标识)是有值的。虽然Mode是Back,但是整个页面完全是新创建的,因为NavigationCacheMode默认是Disabled。

抱歉!评论已关闭.