如何在 windows phone 8 按下后退按钮时转到上一页

How to go to previous page in windows phone 8 when back button is pressed

我的 windows phone 基于 c# 的应用程序中有一个主页或登陆页面,用户可以在其中输入登录详细信息,成功登录后,用户将被重定向到 page2 。在这里,用户将看到一个包含少量项目的列表框。从该列表框中选择一个项目后,将打开一个名为 "Threadx" 的新页面。(其中 x 是单击列表框中的 x 项目后打开的每个页面)

当用户在此线程页面上时 "Threadx" 他可能会收到 toast 通知并且该线程会更新为该线程上的新回复或答案。

但是,当用户点击后退按钮时,"ThreadX" 页面不会关闭,而是会回到之前的状态,消息数量较少,依此类推,直到应用程序关闭。

protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        if (e.NavigationMode == NavigationMode.Back)
        {
            return;
        }
    }

我想知道这个 "Threadx" 页面是否可以在单击后退按钮后关闭而不影响其他 "Threadx+1","Threadx+2"..."Threadx+n" 页面。

任何帮助将不胜感激。

我使用的另一种方法是在 "thread" 页面的 onnavigateto 方法中使用以下代码,它对我有用。让我知道是否有一种优雅的方法或更好的方法。

if (e.NavigationMode == NavigationMode.Back)
         {
             NavigationService.Navigate(new Uri("/View/Page2.xaml", UriKind.Relative));
         }

通常 windows 当您离开一个页面并导航到另一个页面时,页面会保留在堆栈中。如果你想在按下后退按钮时导航到上一页,你可以执行以下操作:

将以下行添加到 OnNavigatedTo 方法:

Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;

HardwareButtons_BackPressed 方法添加定义:

    private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
    {
        e.Handled = true;
        if (Frame.CanGoBack)
            Frame.GoBack();
    }

不要忘记将 Windows.Phone.UI.Input 添加到命名空间列表。