Windows phone開發初體驗之(二)-頁面導航

來源:互聯網
上載者:User
NavigationService作用及描述:用以處理Windows phone頁面的導航

 

常用屬性

屬性名稱

說明

BackStack

擷取一個 IEnumerable,它用於枚舉後退導航記錄中的條目。

CanGoBack

擷取一個值,該值指示在後退導航記錄中是否至少存在一個條目。

CanGoForward

擷取一個值,該值指示在前進導航記錄中是否至少存在一個條目。

CurrentSource

擷取當前顯示的內容的統一資源識別項 (URI)。

Source

擷取或設定當前內容或導航到的內容的統一資源識別項 (URI)。

 

 

常用方法

方法名稱

說明

GoBack()

導航到後退導航記錄中的最新條目;如果後退導航時沒有條目,則引發異常。所以在這裡我們就注意了,我們可以先判斷下是否可以後退,這就用到了上面我們介紹的CanGoBack屬性了。

GoForward()

導航到前進導航記錄中的最新條目,如果前進導航時沒有條目,則引發異常。對於 Windows Phone,該方法始終引發異常,因為沒有前進導航堆棧。同樣的我們也需要在這裡判斷是否可以導航到下一頁【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

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.