2012-12-04 29 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返回到主屏幕。