我正在创建一个具有开始按钮的应用程序,该按钮可让您从应用程序中的任何位置进入开始页面。
但是,当我只是导航到起始页时,返回导航堆栈会受到伤害。
寻找解决方案我找到了 NonLinearNavigationService。问题是下载链接是针对应用程序中心的,它(现在,因为我们有新的更好的应用程序中心)将我重定向到主页,而无处可去。我也未能使用内置搜索引擎在应用程序中心找到它。
有谁知道我可以从哪里得到它?
或者也许是导航循环的另一种解决方案?
我正在创建一个具有开始按钮的应用程序,该按钮可让您从应用程序中的任何位置进入开始页面。
但是,当我只是导航到起始页时,返回导航堆栈会受到伤害。
寻找解决方案我找到了 NonLinearNavigationService。问题是下载链接是针对应用程序中心的,它(现在,因为我们有新的更好的应用程序中心)将我重定向到主页,而无处可去。我也未能使用内置搜索引擎在应用程序中心找到它。
有谁知道我可以从哪里得到它?
或者也许是导航循环的另一种解决方案?
如果导航的唯一非线性部分是主页按钮,则可以在循环中使用NavigationService.RemoveBackEntry()直到它引发InvalidOperationException
主页按钮事件。当InvalidOperationException
引发 BackStack 时,BackStack 为空,并且下一次单击后退按钮退出应用程序。
通常不建议在 WP7 中使用线性导航,因为硬件后退按钮和手机其余部分的 UX,因此您可能应该构建您的应用程序以避免这种情况。但是它应该通过认证过程。
这是另一个类似的问题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-应用程序.aspx。
如果您使用 RemoveBackEntry(),条目会以编程方式从后台堆栈中清除,因此您不必处理实际浏览页面以将其弹出堆栈的副作用。
非线性导航服务有效地完成了您所尝试的工作。它调用 GoBack() 来遍历堆栈。它为防止闪烁所做的额外工作是使根框架透明。看到这个问题:
我不想将您的问题称为重复问题,因为我认为在 Mango 出现之前,这可能是需要使用的解决方案。现在 RemoveBackEntry() 已添加到 NavigationService,我认为使用它可能是更好的方法。