windows phone页面的简单导航操作

昨天我们学习了windows phone的简单导航,在具体学习导航操作之前我们还接触到了有关windows phone的框架知识,下面为大家简单介绍一下:

在一个WP程序运行的时候,程序的整个构架由1个windows,1个frame(现在暂且认为为一个),和多个page组成。如有多个page,则依次压入系统栈来执行,每显示一个page压栈,每按一次返回键退栈,直至栈空。比如有三个页面:mainpage,page1,page2则显示页面的先后顺序为mainpage,page1,page2(之后按返回键)page1,mainpage,主界面。

整个效果的实现原理如下:

当我在第一个页面时触发button事件,在后台执行以下代码:

 private void button1_Click(object sender, RoutedEventArgs e)
 {
       Frame fri =(Frame) Window.Current.Content;//定义一个frame类型的变量,括号里的内容代表强制转换, Window.Current.Content属性是指指定的frame所在的window对象
       fri.Navigate(typeof(Page2));//表示fri将导航到Page2
 }

同时当进入下一个页面的时候添加返回事件

protected override void OnNavigatedTo(NavigationEventArgs e)
{
      HardwareButtons.BackPressed+=HardwareButtons_BackPressed
 }

从第二个页面到第三个触发的button事件,返回事件也如此

因为整个程序只有一个返回事件,所以要实现上述效果应该在显示这个界面时添加事件,从这个界面退出时删除这个事件,在下面说一下返回事件的代码:

 private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
 {
            e.Handled=true;//该值指示事件处理程序是否已完整处理事件,true表示已处理过的
            Frame fri=Window.Current.Content as Frame;//相当于fri现在是frame系统栈的名字
            if (fri.CanGoBack)//意思说是栈不为空,即就是还有页面可以返回
            {
                fri.GoBack();//返回
                
            }
            else
                App.Current.Exit();//结束这个程序
 }

 protected override void OnNavigatedFrom(NavigationEventArgs e)
 {
           HardwareButtons.BackPressed -= HardwareButtons_BackPressed;//减去返回事件
 }

这是一个页面的跳转与返回,之后的页面情况以此类推。

备注:这是第一次写博客,格式和表达都会有或多或少的不足,之后会慢慢改正,如果有表达和知识点的错误,请大家指出,谢谢。

作者:李璐


          

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值