2012-08-17 93 views
0

我正在创建一个具有启动按钮的应用程序,该应用程序可让您从应用程序的任何位置启动页面。非线性导航服务

但是,当我导航到开始页面时,背面导航堆栈会受到伤害。

寻找解决方案我找到了NonLinearNavigationService。问题在于下载链接是针对应用程序中心的,因为我们有了新的更好的应用程序中心,所以我将它重定向到主页面,甚至更远的地方。此外,我未能在使用搜索引擎的应用程序中心上找到它。

任何人都知道从哪里可以得到它?

或者也许是导航循环的另一种解决方案?

回答

1

如果使用RemoveBackEntry(),则从后台堆栈以编程方式清除条目,因此您不必处理实际导航到页面的副作用以将其弹出堆栈。

非线性导航服务有效地做你已经尝试过的。它调用GoBack()来遍历堆栈。它另外做的防止闪烁是使根框架透明。看到这个问题:

Skip a page when the back button is pressed, WP7

我不想打电话给你的问题一个重复的,因为我觉得芒果出来之前,这可能是一个需要使用的解决方案。现在RemoveBackEntry()已经添加到NavigationService中,我认为使用它可能是更好的方法。

+0

谢谢,我会尝试删除与RemoveBackEntry()的一切。我找到了这个答案,并想尝试NonLinearNavigationService,但没有找到可用的下载链接 – Skiba 2012-08-18 14:13:41

+1

@Skiba我不确定何时在新的Windows Phone开发人员中心中恢复链接。如果您找不到它,但仍然无法在Deve中心找到,请给我发电子邮件,我会向您发送一份副本。 – Gambit 2012-08-18 19:04:34

+0

我很想去,但是我找不到你的个人资料中的邮件......如果你能把它发送给我,我会非常感谢 – Skiba 2012-08-20 07:27:17

1

由于手机其他部分的硬件后退按钮和UX,通常不推荐WP7中的线性导航,因此您应该构建应用程序以避免这种情况。但是它应该通过认证过程。

这是另一个类似的问题In-App Home Button to Navigate to MainPage allowed?和一篇关于圆形导航的文章,其中提到了您正在谈论的NonLinearNavigationService http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/12/13/solving-circular-navigation-in-windows-phone-silverlight-applications.aspx

+0

感谢您快速回答。我发现了这两个,他们让我看看NonLinearNavigationService。我会给大规模NavigationService.GoBack()一试 – Skiba 2012-08-17 11:58:08

+0

使用国旗和GoBack()导致跳过页面闪烁,所以这不是一个最好看的解决方案... – Skiba 2012-08-17 12:40:14

1

如果导航的唯一非线性部分是主页按钮,则可以在循环中使用NavigationService.RemoveBackEntry(),直到在主页按钮事件中引发InvalidOperationException。当InvalidOperationException被引发时,BackStack是空的,下一次点击后退按钮退出应用程序。