繁体   English   中英

按下后退按钮时如何转到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”上时,他可能会收到敬酒通知,并且该线程将使用该线程上的新答复或答案进行更新。

但是,当用户单击“后退”按钮时,“ ThreadX”页面不会关闭,而是会转至其以前的状态,在该状态中,消息数量较少,依此类推,直到应用程序关闭。

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

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

任何帮助将非常感激。

通常,当您离开页面并导航到另一页面时,窗口会将页面保留在堆栈中。 如果要通过按“后退”按钮导航到上一页,可以执行以下操作:

OnNavigatedTo添加到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添加到名称空间列表。

我得到它的另一种方法是在我的“线程”页面的onnavigateto方法中使用以下代码,并且对我有用。 让我知道是否有优雅的方法或更好的方法。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM