幾乎所有的真實的應用程式都並不是只有一個xaml頁面,所以頁面導航就先的尤為重要。頁面導航不但涉及到頁面之間的跳轉,而且還涉及到頁面之間的資料傳遞,以及back按鈕的重載等。這一節只提簡單的頁面導航,資料傳遞以及back按鈕以後再寫。
1、使用xaml進行頁面導航
其實就是使用HyperlinkButton控制項的NavigateUri屬性來導航。例如 <HyperlinkButton NavigateUri="/Views/Music.xaml"/>
uri類似於url的一種通用資源標誌符(Uniform Resource Identifier),用它可以在應用程式內導航,甚至串連web上的內容。
2、使用C#代碼導航; 這個本質上和前面的方法是一樣的,只是將跳轉寫在某個控制項的某個事件中,一般都是寫在click的時間中。如: NavigationService.Navigate(new Uri("/Views/Music.xaml", UriKind.Relative));
3、地址別名
(1)首先在App.xaml中添加命名空間: xmlns:nav="clr-namespace:System.Windows.Navigation;assembly=Microsoft.Phone"; (2)在App.xaml的<Application.Resources>中定義UriMapper,如
<nav:UriMapper x:Key="UriMapper">
<nav:UriMapping Uri="Music" MappedUri="/View/Music.xaml"></nav:UriMapping>
</nav:UriMapper>
(3)在應用程式中使用的UriMapper對象,還需要在應用程式的RootFrame中設定資源字典裡的對象。在App.xaml.cs的建構函式中加上
this.RootFrame.UriMapper = Resources["UriMapper"] as UriMapper;
(4)之後可以通過XAML或者後台代碼來實現導航,如:
<HyperlinkButton NavigateUri="Music"/>
NavigationService.Navigate(new Uri("Music", UriKind.Relative));
下面附一篇參考文章:http://www.cnblogs.com/konck/archive/2012/01/10/2318232.html