NavigationService.Navigate()方法和PhoneApplicationFrame.Source属性有什么区别?

时间:2010-05-05 08:34:12

标签: silverlight windows-phone-7

取自Exercise 1: Creating Windows Phone Applications with Microsoft Visual Studio 2010 Express for Windows Phone

任务3:第9步

// navigate
this.NavigationService.Navigate(new Uri("/PuzzlePage.xaml", UriKind.Relative));
  

注意:
  PhoneApplicationPage类提供了通过其NavigationService属性导航到页面的方法和属性。您可以调用NavigationService的Navigate方法并将页面的URI作为参数传递。您还可以使用GoBack和GoForward方法在导航历史记录中向后或向前导航。硬件后退按钮还在应用程序中提供向后导航。上面显示的事件处理程序使用NavigationService转到PuzzlePage.xaml页面。

任务4:第3步

(RootVisual as Microsoft.Phone.Controls.PhoneApplicationFrame).Source = 
    new Uri("/ErrorPage.xaml", UriKind.Relative);
  

注意:
  ...
  每当您将Source属性设置为与显示的内容不同的值时,框架将导航到新内容   ...

这两种技术的区别和相似之处是什么?

1 个答案:

答案 0 :(得分:6)

基本上,他们都做同样的事情。

NavigationService.Navigate是一个原生的Silverlight导航服务,允许从一个xaml文件到另一个xaml文件的异步导航(无需加载用户控件) - 这是一个很好的小概述here

不同之处在于NavigationService能够以浏览器式的方式前后移动。设置Source的{​​{1}}属性不会。

还处于早期阶段,对你应该使用哪种方法做出有根据的猜测可能还为时过早。

PhoneApplicationFrame具有成为Silverlight本机类的优势,但NavigationService特定于WP。