NavigationService
作用及描述:用以处理Windows phone页面的导航
常用属性
属性名称
|
说明
|
BackStack
|
获取一个IEnumerable,它用于枚举后退导航历史记录中的条目。
|
CanGoBack
|
获取一个值,该值指示在后退导航历史记录中是否至少存在一个条目。
|
CanGoForward
|
获取一个值,该值指示在前进导航历史记录中是否至少存在一个条目。
|
CurrentSource
|
获取当前显示的内容的统一资源标识符 (URI)。
|
Source
|
获取或设置当前内容或导航到的内容的统一资源标识符 (URI)。
|
常用方法
方法名称
|
说明
|
GoBack()
|
导航到后退导航历史记录中的最新条目;如果后退导航时没有条目,则引发异常。所以在这里我们就注意了,我们可以先判断下是否可以后退,这就用到了上面我们介绍的CanGoBack属性了。
|
GoForward()
|
导航到前进导航历史记录中的最新条目,如果前进导航时没有条目,则引发异常。对于 WindowsPhone,该方法始终引发异常,因为没有前进导航堆栈。同样的我们也需要在这里判断是否可以导航到下一页【CanGoForward】
|
Navigate(Uri uri)
|
对由统一资源标识符 (URI) 指定的内容的导航。参数为一个Uri对象
|
NavigationContext
作用及描述:表示导航操作的状态。
常用的属性
属性名称
|
说明
|
QueryString
|
获取查询字符串值的集合。其结果是一个IDictionary<string, string>键值对
|
给出的Demo示例:
首先看实现的效果
主要源代码:
MainPage.xaml
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Button Content="跳转到第二页并带参数" Height="72" HorizontalAlignment="Left" Margin="53,220,0,0" Name="button1" VerticalAlignment="Top" Width="352" Click="button1_Click" />
<TextBlock Height="30" HorizontalAlignment="Left" Margin="27,107,0,0" Name="textBlock1" Text="参数值:" VerticalAlignment="Top" />
<TextBox Height="72" HorizontalAlignment="Left" Margin="129,84,0,0" Name="textBox1" Text="参数。。。" VerticalAlignment="Top" Width="460" />
</Grid>
MainPage.xaml.cs 为按钮添加的Click事件
private void button1_Click(object sender, RoutedEventArgse)
{
//创建一个Uri对象
Uri uri = new Uri("/Second.xaml?msg="+ textBox1.Text, UriKind.Relative);
//导航到第二页
NavigationService.Navigate(uri);
}
Second.xaml文件中的布局:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<TextBlock Height="30" HorizontalAlignment="Left" Margin="9,69,0,0" Name="textBlock1" Text="第一页传过来的值:" VerticalAlignment="Top" />
<TextBlock Height="30" HorizontalAlignment="Left" Margin="214,69,0,0" Name="textBlock2" Text="TextBlock" VerticalAlignment="Top" />
<Button Content="返回到上一页" Height="72" HorizontalAlignment="Left" Margin="54,230,0,0" Name="button1" VerticalAlignment="Top" Width="300" Click="button1_Click" />
</Grid>
Second.xaml.cs文件,我们在页面的loaded事件取出传过来的值
private voidPhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
string msg = "";
if (NavigationContext.QueryString.TryGetValue("msg", outmsg))
{
this.textBlock2.Text = msg;
}
}
private voidbutton1_Click(object sender, RoutedEventArgs e)
{
if(NavigationService.CanGoBack)
{
NavigationService.GoBack();
}
}
如需转载引用请注明出处:http://blog.csdn.net/jiahui524
分享到:
相关推荐
Windows Phone开发(五)-- 导航控制 . http://blog.csdn.net/cc_net/article/details/6660889的Demo
Windows Phone开发(四)-- 导航事件和传值 代码http://blog.csdn.net/cc_net/article/details/6581281
Windowsphone开发初体验之(三)-参数传递 源代码
Windows Phone开发(六)-- 多任务之墓碑机制 代码 http://blog.csdn.net/cc_net/article/details/6665737
Windows Phone7手机开发基础实例--手机归属地
仿Windows Phone博客导航源码 程序介绍: Windows Phone Blog Menu是一个Silverlight导航控件,看起来像Windows Phone 7。 控件中的tiles链接到web站点在你的博客中使用这个控件可以表达你对WP7的喜爱。 Windows...
Windows Phone开发-XNA基础
这一篇文章就来将介绍WindowsPhone平台上导航功能。从Silverlight3开始,提供了内置的导航框架,可以比较轻松的在SilverlightPage之间进行切换,并且可以和浏览器的前进、后退按钮集成。在Silverlight3之前的版本,...
windows phone 开发 在线教程
ArcGIS-API-for-Windows-Phone开发实例 ArcGIS-API-for-Windows-Phone开发实例 ArcGIS-API-for-Windows-Phone开发实例
默认的我们建立一个WindowsPhone程序,使用导航功能是不会出现这个问题的。我们先看一个列子:我们新建一个项目后,不把Frame设置到RootVsual,而是用MainPage。我们从Mainpage导航到Page1.使用两种方法:第一种方法...
Windows_Phone_7入门经典-使用Silverlight和XNA开发Windows_Phone应用
windows phone 8 silverlight XAML