页面导航
框架和页面
框架(Framework)
-
是顶级容器控件
-
是PhoneApplication类
-
包含页面控制和系统元素,如系统托盘应用程序栏
页面
-
内容占据整个框架
-
是PhoneApplication派生类
-
包含标题
-
可设置应用程序栏
其关系图如右
导航
XAML使用基于页面的导航
XAML
NavigateUri="/Pages/Music.xaml" <!--主要使用在HyperlinkButton控件中-->
C# 代码进行导航
private void btnJump_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/page1.xaml",UriKind.Relative));
}
重写物理后退键
<phone:phoneAppliocatonPage
x:class
..
Shell:SystemTRay.IsVisible="true"
BackKeyPress="METHOD_NAME">
如果要进行非线性导航,需要使用
<phone:phoneAppliocatonPage
x:class
..
Shell:SystemTRay.IsVisible="true"
BackKeyPress="METHOD_NAME">
NavigationService.RemoveBackEntry()
这样的话,可以从导航堆栈中去掉一个页面。
页面间数据传递
页面间传递简单数据
NavaigateService.Navigate(new Uri("/xxx.caml?msg="+(the string you want to pass),UriKind.Relative));
页面间传递对象
通过viewmodel传递
NavigationService.Navigate(new Uri("/DetailsPage.xaml?selectedItem=" +
(MainLongListSelector.SelectedItem as ItemViewModel).ID, UriKind.Relative));
程序运行效果
导航