页面导航

win8中是没有对话框的概念的,不同的界面是不同的页面,类似于网页,通过Frame.Navigate(typeof(Page),obj参数)来在不同的页面间导航。

Frame属性的方法:GoBack()后退;GoForward()前进;CanGoBack属性判断是否可以后退。

后台中调用:(Frame就是Page的一个属性)

<pre name="code" class="csharp">Frame.Navigate(typeof(myPage));
Frame.GoBack();


传参数:

//传参数
Frame.Navigate(typeof(myPage),1);
//获取参数
int i = (int)e.Parameter;

页面导航默认是不启用缓存,也就是后退以后前一个页面恢复成原始状态,需要在构造函数中执行:(启用缓存选项

NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;

三个和页面导航相关的虚方法:(重写虚方法)

OnNavigatedTo:当页面成为活动页面时调用。e.NavigationMode得知是新来的New还是后退进来的Back还是前进来的Forward,一般数据初始化放到OnNavigatedTo中,注意判断Mode

override void OnNavigatedTo()
{
//因为后退回来还会触发。所以需要判断只有是新进入的New,才加载数据
 if(e.NavigationMode == NavigationMode.Back){//加载数据}
}

OnNavigatedFrom:当页面不再是活动页面时调用

OnNavigatingFrom:在页面即将不再是活动页面时调用,实现确认是否退出

override void OnNavigatingFrom()
{
e.Cancel = true;//阻止离开页面
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章