windows phone页面的简单导航操作
2015-11-16 20:58
267 查看
昨天我们学习了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;//减去返回事件
}
这是一个页面的跳转与返回,之后的页面情况以此类推。
备注:这是第一次写博客,格式和表达都会有或多或少的不足,之后会慢慢改正,如果有表达和知识点的错误,请大家指出,谢谢。
作者:李璐
在一个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;//减去返回事件
}
这是一个页面的跳转与返回,之后的页面情况以此类推。
备注:这是第一次写博客,格式和表达都会有或多或少的不足,之后会慢慢改正,如果有表达和知识点的错误,请大家指出,谢谢。
作者:李璐
相关文章推荐
- Object-C之Protocol协议解析
- 《亲密关系》摘录
- Hadoop 1.x安装
- linux运维实战练习-2015年11月8日-11月17日课程作业(练习)汇总
- Android基础
- 看懂UML类图和时序图
- Lowest Bit
- Android APK反编译就这么简单 详解(附图)
- LightOJ 1007 Mathematically Hard
- ubuntu 安装新软件后利用export设计PATH重启依旧有效方法
- 定位-01-定位服务编程
- Android开发日记(一)
- ARC小结
- UWP 绘制图形
- 转载:警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting
- HDU 5525 Product
- 基类 派生类 静态查找表
- 请求解析数据 SDWebImage请求图片
- UWP 绘制图形
- 课程设计之第一次冲刺----第六天