Windows Phone開發之路(15) 基本導航

來源:互聯網
上載者:User

  一個稍微複雜一點的應用中,可能會用到多個頁面,要在這些頁面中跳轉,就必須用到導航功能。

  下面這個執行個體實現的功能是:從首頁面MainPage導航到頁面SecondPage,然後再從SecondPage返回到MainPage頁面這樣一個準系統。

  MainPage XAML代碼:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<TextBlock Text="Navigate to Second Page!"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Padding="0,34"
ManipulationStarted="TextBlock_ManipulationStarted"/>
</Grid>

  MainPage C#代碼:

public partial class MainPage : PhoneApplicationPage
{
// 建構函式
public MainPage()
{
InitializeComponent();
}

private void TextBlock_ManipulationStarted(object sender, ManipulationStartedEventArgs e)//處理ManipulationStarted事件
{
//todo:當單擊TextBlock時跳轉到SecondPage頁面
this.NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));//調用NavigationService類的Navigate()方法實現導航

e.Complete();//表示不再處理其它Manipulation事件
e.Handled = true;//標記路由事件已處理,不需要向上傳遞事件
}
}

  

  SecondPage XAML代碼:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<TextBlock Text="Go back to Main Page"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Padding="0,34"
ManipulationStarted="TextBlock_ManipulationStarted"/>
</Grid>

  SecondPage C#代碼:

public partial class SecondPage : PhoneApplicationPage
{
public SecondPage()
{
InitializeComponent();
}

private void TextBlock_ManipulationStarted(object sender, ManipulationStartedEventArgs e)//處理ManipulationStarted事件
{
//todo:返回到Main Page頁面
this.NavigationService.GoBack();//調用NavigationService類的GoBack()方法返回到前一個頁面,等價於下一行代碼
//this.NavigationService.Navigate(new Uri("/MainPage.xaml",UriKind.Relative));//不同的是程式不再回到原來的MainPage執行個體,而是導航到一個新的MainPage執行個體

e.Complete();
e.Handled = true;
}
}

  效果

     
 點擊TextBlock導航到SecondPage頁面              點擊TextBlock返回到MainPage頁面

  注意:1,ManipulationStarted事件,是在對UIElement對象(在這裡指TextBlock)開始操作時發生。即單擊它就立即發生。
     2,NavigationService屬性,它是Page類中定義的唯讀屬性,它是NavigationService類型的,而NavigationService類是密封類,我們不能對其進行執行個體化,而由宿主類型建立它們自己的NavigationService執行個體,其中NavigationService類中包含了Navigate()方法和GoBack()方法。
     3,注意this.NavigationService.GoBack()和this.NavigationService.Navigate(new Uri("/MainPage.xaml",UriKind.Relative))的區別,雖然它們實現的效果是一樣的,但是它們的原理是不一樣的。

  下一篇將總結Silverlight應用程式中頁面間資料的傳遞。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.