Windows Phone 8.1 Frame Navigation History / BackStack



我正在开发一个WP 8.1的应用程序,它使用Windows运行时而不是Silverlight。因此,我无法访问NavigationService类。

我尝试通过在 OnNavigatedTo() 方法中将当前页面类型推送到堆栈来手动实现后退堆栈,但没有运气。

我需要做的就是找到一种方法来管理导航历史记录,以便当用户点击硬件后退按钮时,他们将被带到他们所在的应用程序中的最后一页,直到用户进入第一页,在该页面上回击将退出应用程序。

有人可以在这里指出我正确的方向吗?

您可以通过导航框架的 BackStack 属性访问后退堆栈。为此,您只需覆盖 NavigationHelper 类中的 GoBack 命令(您可以在 Common 文件夹中找到它)。在那里,您只需检查BackStackDepth:如果它是0,那么您可以终止当前应用程序,因为默认行为会暂停它而不关闭它:)

类似的东西(在导航助手类中):

public virtual void GoBack()
{
    if (this.Frame != null)
    {
        if (this.Frame.CanGoBack) this.Frame.GoBack();
        else App.Current.Exit();
    }
}

Frame 类现在包含导航方法(BackStack、GoBack、Navigate 等)

通过以下方式获取(在页面代码隐藏中):

((Frame)Parent).BackStack;

或其他地方通过以下方式:

((Frame)Window.Current.Content).BackStack;

相关内容

  • 没有找到相关文章

最新更新