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连接状态,通过该 ...
随机推荐
- golang 写文件
package main import ( "bufio" "fmt" "io" "os" ) func main() ...
- Codefroces 831B Keyboard Layouts
B. Keyboard Layouts time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Vue 消息无缝滚动
vue实现消息向上无缝滚动效果 <ul class="new-list" :class="{anim:animate}" @mouseenter=&quo ...
- 【习题 7-6 UVA - 12113】Overlapping Squares
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 先预处理出来一个正方形. 然后每次枚举新加的正方形左上角的坐标就可以. 注意覆盖的规则,控制一下就可以. 然后暴力判断是否相同. 暴 ...
- Activity学习
http://www.360doc.com/content/13/1106/11/203871_327110236.shtml http://www.jianshu.com/p/e6971e8a8da ...
- CMake编译Makefile
以编译Libtif文件为例: 你可以用CMake编译libtiff,超简单,两个步骤. 参考文章 CharlesSimonyi,libtiff库的问题的答复
- Scala入门到精通——第二十二节 高级类型 (一)
作者:摇摆少年梦 视频地址:http://www.xuetuwuyou.com/course/12 本节主要内容 this.type使用 类型投影 结构类型 复合类型 1. this.type使用 c ...
- 机器学习分支:active learning、incremental learning、online machine learning
1. active learning Active learning 是一种特殊形式的半监督机器学习方法,该方法允许交互式地询问用户(或者其他形式的信息源 information source)以获取 ...
- 关于Altium Designer中的搜索图纸上的元件
一开始以为Altium Designer搜索完成的pcb上的元件用ctrl+f 但是错了,应该是j,c
- 如何获取已经安装到苹果手机上的App信息
//如何获取已经安装到苹果手机上的App信息? Is it possible to get the information (app icon, app name, app location) abo ...