小梦给大家带来windows phone 8.1应用开发实战教程,分享自己学习,开发过程中的经验和技巧。

今天给大家分享windows phone 8.1页面导航相关知识。涉及知识点如下:

  1. 页面一导航到页面二
  2. 页面一带一个参数导航到页面二
  3. 页面一带多个参数导航到页面二
  4. 重写后退键,使得后退键可以返回前一页面。注:后退键默认是退出程序。
  5. 清楚后退堆栈历史。

本例共有三个页面: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:页面导航详解的更多相关文章

  1. (转)windows 下安装配置 Nginx 详解

    windows 下安装配置 Nginx 详解 本文转自https://blog.csdn.net/kingscoming/article/details/79042874 nginx功能之一可以启动一 ...

  2. windows下的定时任务设置详解

    windows下的定时任务设置详解 一.总结 一句话总结: 1.php.exe是什么? 就是php中自带的一个exe,不是我们写的,这个exe是可以执行其他的PHP的 二.windows下的定时任务设 ...

  3. 谷歌page speed 安装使用及页面问题详解

    原文地址:http://wenku.baidu.com/view/b0a61f3ebcd126fff7050b40.html 谷歌page speed 安装使用及页面问题详解 谷歌page speed ...

  4. SVN的Windows和Linux客户端操作详解

    SVN的Windows和Linux客户端操作详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Windows客户端操作 1.安装SVN客户端 a>.去官网下载svn软件 ...

  5. 转:InnoDB Page Structure(InnoDB页面结构详解)

    InnoDB Page Structure(InnoDB页面结构详解) 此转载自登博的博客,给大家分享.

  6. 引用 Windows Server 2003 FTP服务器配置详解

    引用 昆神之星 的 Windows Server 2003 FTP服务器配置详解 1.FTP文件传输协议,主要用于计算机之间文件传输,是互联网上仅次于www的第二大服务.本文主要演示如何在Window ...

  7. windows版mysql8.0安装详解

    2018年07月04日 13:37:40 Zn昕 阅读数 6433更多 分类专栏: mysql   版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. ...

  8. windows.open()、close()方法详解

    windows.open()方法详解:         window.open(URL,name,features,replace)用于载入指定的URL到新的或已存在的窗口中,并返回代表新窗口的Win ...

  9. windows/NBTSTAT,linux/nmblookup命令详解,查询NetBIOS名

    NBTSTAT命令详解 请问: Linux下有没有和nbtstat一样的命令,用 nmblookup -A ip 可以 nbstat命令主要用于查看当前基于netbios的tcp/ip连接状态,通过该 ...

随机推荐

  1. Flask项目之手机端租房网站功能测试(完结)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶注册和登录以及用户退出功能 二丶上传头像功能和修改用户名功能测试 三丶发布房源以及实名认证功能测试 四丶网站房屋搜索功能 ...

  2. CISP/CISA 每日一题 22

    CISSP 每日一题(答)What should be done to verify patcheshave been applied? Auditpatches, or use a vulnerab ...

  3. 设计模式六大原则(二):里氏替换原则(Liskov Substitution Principle)

    里氏替换原则(LSP)由来: 最早是在 妖久八八 年, 由麻神理工学院得一个女士所提出来的. 定义: 1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 ...

  4. Servlet 规范笔记—基于http协议的servlet

    在上一章节,我们大概的描述了servlet的规范以及servlet和servlet容器的概念和用途,我们清楚的知道servlet容器提供了接收来自client端的请求,然后根据请求进行处理(如:执行对 ...

  5. 洛谷 P1916 小书童——蚂蚁大战

    P1916 小书童——蚂蚁大战 题目背景 小A在你的帮助下,开始“刷题”,他在小书童里发现了一款叫“蚂蚁大战”(又称蛋糕保卫战)的游戏.(你懂得) 题目描述 游戏中会出现n只蚂蚁,分别有a1,a2…… ...

  6. Google 免费公共 DNS 服务器

    Google 免费公共 DNS 服务器 http://googleblog.blogspot.com/2009/12/introducing-google-public-dns.html DNS 8. ...

  7. 含有打印、统计DataGridView(1)

    using System;using System.Collections.Generic;using System.Text;using System.Drawing.Printing;using ...

  8. 洛谷 P2755 洗牌问题

    P2755 洗牌问题 题目描述 给你2N张牌,编号为1,2,3..n,n+1,..2n.这也是最初的牌的顺序. 一次洗牌是把序列变为n+1,1,n+2,2,n+3,3,n+4,4..2n,n.可以证 ...

  9. 关于Newtonsoft.json JsonConvert.DeserializeObject反序列化的使用

    object obj = JsonConvert.DeserializeObject("{\"Sta\":3}", paramClass); //paramCl ...

  10. Hypervisor scheduler

    Techniques for configuring a hypervisor scheduler to make use of cache topology of processors and ph ...