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连接状态,通过该 ...
随机推荐
- jQuery post 打开新窗口
//使用POST方式打开界面 function doOpenPostWin(url, args, name, windowParam) { //创建表单对象 var _form = $("& ...
- C# 向DataTable中插入数据或伪造DataTable
方法一: DataTable tblDatas = new DataTable("Datas"); DataColumn dc = null; dc = tblDatas.Col ...
- linux网络防火墙-iptables基础详解
一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防火墙 ...
- R语言-有负下标里才干有零
1.仅仅有负下标里才干有零 先看一个样例 >a<-c(1,2,3,4) >a[-1:1] > a[-1:1] Error in a[-1:1] : 仅仅有负下标里才干有零 (1 ...
- eclipse- log 打印跟输出到文件
1.在eclipse中打印log,经常使用的就是log.e(string,string) 代码中如下 @Override public boolean onTouchEvent(MotionEvent ...
- 关于laravel框架分页报错的问题
因为laravel框架有自己的分页封装,所以与其他框架相比laravel框架的分页的实现要方便的多 只要分别在php脚本与视图中使用 $data=DB::table('index_pic')-> ...
- 洛谷 P2069 松鼠吃果子
P2069 松鼠吃果子 题目描述 有N个一种松鼠喜欢吃的果子由下向上串排成一列,并标号1,2,...N.一只松鼠从最下果子开始向上跳,并且第i次跳可以一次跳过i*i*i除以5的余数+1个果子(=i*i ...
- 【BZOJ 1146】【CTSC 2008】网络管理network
一句话题意,树链上带改动区间第k大 感觉能够dfs+主席树O(nlog2n)过掉,但我不会写= = 于是写的线段树套平衡树+链剖+二分(改动O(nlog3n),查询O(nlog4n)慢了好多啊QAQ) ...
- R语言- 基本统计分析
目的: 1.描述性统计分析 2.频数表和;列连表 3.相关系数和协方差 4.t检验 5.非参数统计 在上一节中使用了图形来探索数据,下一步就是给出具体的数据来描述每个变量的分布和关系 1.描述性统计分 ...
- express,中间件(body-parser),req.body获取不到参数(含postman发请求的方法)
问题描述: 最近在做毕设,express 里边的中间件(body-parser)失效,req.body获取不到任何值,req.query能获取到值.一开始加body-parser中间件是有用的,直到昨 ...