windows phone8.1:页面导航详解
小梦给大家带来windows phone 8.1应用开发实战教程,分享自己学习,开发过程中的经验和技巧。
今天给大家分享windows phone 8.1页面导航相关知识。涉及知识点如下:
- 页面一导航到页面二
- 页面一带一个参数导航到页面二
- 页面一带多个参数导航到页面二
- 重写后退键,使得后退键可以返回前一页面。注:后退键默认是退出程序。
- 清楚后退堆栈历史。
本例共有三个页面:MainPage,BlankPage1,BlankPage2。
MainPage,BlankPage1的前台代码如下:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="80"/>
<RowDefinition Height="80"/>
<RowDefinition Height="80"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="这是主页" Grid.Row="0" FontSize="40"></TextBlock>
<StackPanel Grid.Row="1" Orientation="Horizontal">
<TextBlock Text="网站:" FontSize="40" Margin="0,0,0,30" Width="88"/>
<TextBox x:Name="textName" Height="40" Margin="0,10,0,0" Width="260" />
</StackPanel>
<StackPanel Grid.Row="2" Orientation="Horizontal">
<TextBlock Text="网址:" FontSize="40" Margin="0,0,0,30" Width="88"/>
<TextBox x:Name="textAdress" Height="40" Margin="0,10,0,0" Width="260" />
</StackPanel>
<StackPanel Grid.Row="3" Orientation="Horizontal">
<TextBlock Text="内容:" FontSize="40" Margin="0,0,0,30" Width="88"/>
<TextBox x:Name="textContent" Height="40" Margin="0,10,0,0" Width="260" />
</StackPanel>
<Button Content="去第二页" Grid.Row="4" Margin="122,147.667,0,147" Click="Button_Click"/>
</Grid>
BlankPage2的前台代码如下:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height=""/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="这是第三页" Grid.Row="" FontSize=""></TextBlock>
<TextBox Name="text" Grid.Row="" Height="" Margin="0,9.667,10,0"/>
<Button Content="我要直接回主页" Grid.Row="" Margin="122,147.667,0,147" Click="Button_Click"/>
</Grid>
mainpage的后台关键代码如下:
private void Button_Click(object sender, RoutedEventArgs e)
{
Website web=new Website()
{
Name=this.textName.Text,
Address=this.textAdress.Text,
Content=this.textContent.Text
};
Frame.Navigate(typeof(BlankPage1),web); //对应知识点3,即传递多个参数时建立一个对象,传递对象即可。
}
blankpage1的后台关键代码如下:
protected override void OnNavigatedTo(NavigationEventArgs e)//重写OnNavigatedTo接受从maingape页面传递来的参数。
{
var web = (Website)e.Parameter;
this.textName.Text = web.Name;
this.textAdress.Text = web.Address;
this.textContent.Text = web.Content;
HardwareButtons.BackPressed += HardwareButtons_BackPressed;//注册重写后退按钮事件
} private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)//重写后退按钮,如果要对所有页面使用,可以放在App.Xaml.cs的APP初始化函数中重写。
{
e.Handled = true; if (Frame.CanGoBack)
Frame.GoBack();
} private void Button_Click(object sender, RoutedEventArgs e)//传递单个参数 {
Frame.Navigate(typeof(BlankPage2), "我是从第二页传送过来的!!");
}
blankpage2的关键后台代码:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
text.Text = (string)e.Parameter;
Frame.BackStack.RemoveAt(Frame.BackStackDepth - );//对应知识点5,清楚后退堆栈的最后一条历史,本例中即第二页,删除后即可从第三页直接到主页。
} private void Button_Click(object sender, RoutedEventArgs e)
{
Frame.GoBack();
}
运行效果:

源代码下载:
PS:希望热爱windows phone开发的大神,小白能来编程小梦一起多多交流,windows Phone开发者本身就比较少,小梦希望大家有一个交流的平台,欢迎大家光临!
windows phone8.1:页面导航详解的更多相关文章
- (转)windows 下安装配置 Nginx 详解
windows 下安装配置 Nginx 详解 本文转自https://blog.csdn.net/kingscoming/article/details/79042874 nginx功能之一可以启动一 ...
- windows下的定时任务设置详解
windows下的定时任务设置详解 一.总结 一句话总结: 1.php.exe是什么? 就是php中自带的一个exe,不是我们写的,这个exe是可以执行其他的PHP的 二.windows下的定时任务设 ...
- 谷歌page speed 安装使用及页面问题详解
原文地址:http://wenku.baidu.com/view/b0a61f3ebcd126fff7050b40.html 谷歌page speed 安装使用及页面问题详解 谷歌page speed ...
- SVN的Windows和Linux客户端操作详解
SVN的Windows和Linux客户端操作详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Windows客户端操作 1.安装SVN客户端 a>.去官网下载svn软件 ...
- 转:InnoDB Page Structure(InnoDB页面结构详解)
InnoDB Page Structure(InnoDB页面结构详解) 此转载自登博的博客,给大家分享.
- 引用 Windows Server 2003 FTP服务器配置详解
引用 昆神之星 的 Windows Server 2003 FTP服务器配置详解 1.FTP文件传输协议,主要用于计算机之间文件传输,是互联网上仅次于www的第二大服务.本文主要演示如何在Window ...
- windows版mysql8.0安装详解
2018年07月04日 13:37:40 Zn昕 阅读数 6433更多 分类专栏: mysql 版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. ...
- windows.open()、close()方法详解
windows.open()方法详解: window.open(URL,name,features,replace)用于载入指定的URL到新的或已存在的窗口中,并返回代表新窗口的Win ...
- windows/NBTSTAT,linux/nmblookup命令详解,查询NetBIOS名
NBTSTAT命令详解 请问: Linux下有没有和nbtstat一样的命令,用 nmblookup -A ip 可以 nbstat命令主要用于查看当前基于netbios的tcp/ip连接状态,通过该 ...
随机推荐
- ps的入门
ps的入门 http://www.cnblogs.com/qingci/archive/2012/09/20/2694728.html
- Angular:内置指令
[ngIf]表达式结果为真,显示元素:表达式结果为假,移除元素. <div *ngIf="a > b"></div> [ngSwitch]对表达式进行 ...
- WebService 的Description 属性说明(转)
转自:http://exception.thinksaas.cn/0/173/173623.html 在WebMethod的description 中可使用超文本, 举例: 如上图中,红框类的WebS ...
- 【2017"百度之星"程序设计大赛 - 复赛】Arithmetic of Bomb
[链接]http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=777&pid=1001 [题意] 在这里写 [题解] ...
- spring+mybatis+Atomikos JTA事务配置说明
一.概览 Atomikos是一个公司名字,旗下最著名的莫过于其Atomikos的事务管理器产品.产品分两个:一个是开源的TransactionEssentials,一个是商业的ExtremeTrans ...
- 词向量 word2vec
看的这一篇的笔记 http://licstar.net/archives/328 看不太懂. 要学的话,看这里吧,这里把一些资料做了整合: http://www.cnblogs.com/wuzhitj ...
- C++面试必备,概念解析
1.C和C++中struct有什么差别? 1> C++中的struct类似于class,有变量.有构造函数.虚函数等.有继承,多态等类的特征: 2> C中的struct仅仅有变量,不能有函 ...
- Android学习笔记之按键操作
我们如何和Android 程序来进行交互那份?来让 Android 程序产生相应的反应,我们不得不通过键盘事件.触摸事件.传感器事件等来实现. 键盘是Android中主要的输入设备,对按键的响应的处理 ...
- mysql测试spring事务是否生效
同时对三张表进行插入操作,事务保证完整性.下面进行简单测试: 1. 锁定表 锁定用户表 LOCK TABLES user WRITE; 查看表是否锁定: show ; 显示被锁定的表. 2. 验证在同 ...
- sql server备份与还原 sql语句
USE master DECLARE tb CURSOR LOCAL FOR SELECT 'Kill '+ CAST(Spid AS VARCHAR) FROM master.dbo.sysproc ...