2010年11月13日 星期六

WP7 中如何實作硬體的 Back 鍵功能…

其實在軟體中放一個 Back 鍵感覺是個還蠻雞肋的功能…
但基於某些理由…這是必要且有助於軟體操作流程的…

有兩個方法…第一是利用 NavigationService.Navigate(Uri) 至某頁…
但用於只想純粹的 Back 時會產生流程迴圈的問題…
因為在新導向的一頁按 Back 一次就會回到原頁…

另一個方法就是使用


NavigationService.GoBack();


這會產生 BackKeyPress Event
所以也可以使用以下方式覆寫 PhoneApplicationPage 的 Back 事件
可以在裡面加一些當按下 Back 鍵要做的事…例如詢問是否真的要 Back 之類的…


protected override void OnBackKeyPress(CancelEventArgs e)
{
  // 做某些事,例如說 886
  base.OnBackKeyPress(e);
}


另外回歷史記錄中的上一頁與下一頁分別是


NavigationService.GoBack();
NavigationService.GoForward();


呼叫這兩個 Method 之前可以使用以下兩個 Property 來判斷是否有上、下頁可前往…


NavigationService.CanGoBack
NavigationService.CanGoForward


完整 C# 範例如下


if(NavigationService.CanGoBack)
{
  NavigationService.GoBack();
}


VB.Net


If Me.NavigationService.CanGoBack Then
  Me.NavigationService.GoBack()
End If

沒有留言:

張貼留言