以编程方式更改Windows Phone 7应用程序启动页面

时间:2011-04-04 09:10:15

标签: c# .net windows-phone-7 silverlight-4.0

我创建了一个简单的总线时间表应用程序,其中包含收藏页面,搜索页面和结果页面。如果用户有收藏夹,那么我希望它们显示为收藏夹页面,否则应显示搜索页面。此外,如果用户在最近10分钟内进行了搜索,那么他们应该转到结果页面。

我最初是如何做到的,是在MainPage.xaml Loaded事件中调用NavigationService.Navigate。这看起来工作正常,但由于后退按钮不再退出应用程序(由于隐藏页面仍在导航堆栈中),因此我无法通过Microsoft的验证。

然后我想到我的应用程序中有一个Loaded属性,如果用户已经在登录时被重定向,那么App会调用Quit或GoBack,但这两个选项似乎都不可行(没有Quit,并且调用第一页上的GoBack将失败。)

有谁知道实现页面重定向或清理导航堆栈的最佳方法?

2 个答案:

答案 0 :(得分:1)

Peter Torr在他的博客文章Redirecting an initial navigation中记录了许多实现这种方法的方法。在您的情况下,我认为自定义UriMapper可能是最好的解决方案。

答案 1 :(得分:0)

我建议始终向用户显示主页面。主页面应允许访问收藏夹,搜索和结果。用户将选择他们想要的页面。您可能认为通过预加载您认为他们想要的东西来帮助用户,但对于您正确的每8个,将会有2个想要另一个页面。另外,您可以简化应用程序并通过验证。