2012-12-04 27 views
0

我有一個小應用程序,有3秒的介紹頁面,然後是內容頁面。當我推回按鈕時,我會回到介紹屏幕,但我想我應該回到系統。怎麼做?如何使返回按鈕返回到系統Windows Phone

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Animation; 
using System.Windows.Shapes; 
using Microsoft.Phone.Controls; 
using System.ServiceModel.Syndication; 
using System.Xml; 
using Microsoft.Phone.Tasks; 

namespace RSS { 
    public partial class FeedPage : PhoneApplicationPage { 
     public FeedPage() { 
      InitializeComponent(); 
      this.Loaded += new RoutedEventHandler(PhonePage1_Loaded); 
     } 
     protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { 
      clearBackStack(); 
      base.OnNavigatedTo(e); 
     } 

     void clearBackStack() { 
      while (this.NavigationService.BackStack.Any()) { 
       this.NavigationService.RemoveBackEntry(); 
      } 
     } 

     void PhonePage1_Loaded(object sender, RoutedEventArgs e) { 
     // clearBackStack(); 
      WebClient wc = new WebClient(); 
      wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted); 
      wc.OpenReadAsync(new Uri("http://www.carmagazine.co.uk/Shared/Handlers/RssHandler.ashx?&N=190&Ns=P_Publication_Date|1&?")); 
     } 
     void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { 
      SyndicationFeed feed; 
      try { 
       using (XmlReader reader = XmlReader.Create(e.Result)) { 
        feed = SyndicationFeed.Load(reader); 
        lista.ItemsSource = feed.Items; 
       } 
      } catch (WebException we) { MessageBox.Show("Internet connection is down.");} 
     } 

     private void Button_Click(object sender, System.Windows.RoutedEventArgs e) { 

      WebBrowserTask webBrowserTask = new WebBrowserTask(); 
      String url = (String)((Button)sender).Tag; 
      webBrowserTask.Uri = new Uri(url); 
      webBrowserTask.Show(); 
     } 
    } 
} 

回答

2

,應清除返回堆棧中的內容頁面

while (this.NavigationService.BackStack.Any()) 
{ 
    this.NavigationService.RemoveBackEntry(); 
} 
+0

它是否違反微軟規則?這是第一次打電話給PhonePage1_Loaded – Yoda

+0

@RobertKilar OnNavigatedTo方法是一個更好的放置它的地方。它不違反規則。它只是讓你的應用程序退出時,按內容頁上的後退按鈕,這是好的 –

+0

像那樣? - >編輯?謝謝,這是我的第一個程序。 – Yoda

0

下面的代碼是後退按鈕按鍵的最佳實踐方法OnNavigateTo

protected override void OnBackKeyPress(CancelEventArgs e) 
    { 
     while (NavigationService.CanGoBack) 
      NavigationService.RemoveBackEntry(); 

     base.OnBackKeyPress(e); 

    } 

這確保您的應用程序將退出並按下BackKey返回到主屏幕。