允许导航到MainPage的应用内主页按钮?

时间:2011-06-15 17:05:29

标签: windows-phone-7 navigation windows-phone home-button

我想知道应用程序主页按钮的实现,它会将您从任何页面带回MainPage。据我所知,WP7开发指南不允许这样做。但我找不到任何关于此的书面信息。

有谁知道这是写在哪里的?

4 个答案:

答案 0 :(得分:2)

通常不建议使用主页按钮,msdn source

  

在用户界面中放置主页按钮与Windows Phone导航模型不同。

     

在您的应用中实施主页按钮也可能会导致第二个问题,这个问题会对您的应用产生更严重的影响:它可能会无意中创建一个用户可能陷入无限(或接近无限)循环的情况当他或她同时使用“主页”按钮和硬件“后退”按钮进行导航时。如果他们使用“后退”按钮从一个应用程序移回应用程序只是为了转到另一个应用程序,则此循环可能会变得更糟。确保这些问题不会影响您的应用。

     

但是,尽量保持应用程序的体系结构尽可能浅,并使用列表和支点,以便用户可以返回到登陆屏幕,只需几步后退,然后再从之前启动的应用程序。

但是有些应用程序不能拥有浅导航并且需要主页按钮,例如google drive或dropbox文件夹浏览器 - 在深入文件夹结构后,用户将希望快速导航到主页面。指南,msdn source

  

如果您的应用允许用户固定页面,请考虑是否需要主页按钮才能让用户快速返回应用的根目录。 主页按钮导航到应用程序的主页,然后清除整个导航后台堆栈

     

例如,如果固定页面是购物车,则用户可能想要在购物车中完成购买,然后再次开始购物。在这种情况下,通过减少回到应用程序开头所需的点击次数,为用户提供主页按钮可以改善用户体验

在您的主页中:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    while (NavigationService.BackStack.Any())
        NavigationService.RemoveBackEntry();
    base.OnNavigatedTo(e);
}

答案 1 :(得分:1)

我不认为它是不被禁止的,但是,这样做会导致导航循环,当用户尝试使用后退按钮退出应用程序时,会导致用户烦恼。

例如,想象一个有3页的应用程序,A,B& C.假设页面C包含一个“主页”按钮,可以直接返回页面A.因此,您的导航堆栈可能最终看起来像这样:

A -> B -> C -> A -> B -> C -> A ....

这需要大量后退按钮才能让用户返回到开始页面并退出应用程序。有几种方法可以避免这种情况,最明显的当然是,不要提供“主页”按钮。但如果你认为这是你的应用程序的必备品,你可以

  • 使用non-linear navigation service管理圆形导航

  • 当用户按下设置此标志的主页按钮并调用NavigationService.GoBack()时,使用更天真的方法维护全局标志。覆盖每个页面上的OnNavigatedTo方法,如果设置了此全局标记,请再次调用NavigationService.GoBack(),直到进入主页。

答案 2 :(得分:1)

允许但不推荐。作为一般规则,您应该依靠后退按钮进行导航以返回主页面。

如果您确实想要实现此行为,则应该仔细测试熟悉手机的实际用户。不要让不熟悉手机的用户使您的UX测试无效。您的实际用户将会并且希望您的应用遵循原生应用和几乎所有其他应用的惯例。

如果您确实需要实现此功能,您可能希望使用NonLinear Navigation Service来正确管理后退按钮的行为。

答案 3 :(得分:0)

我相信只要后退按钮导航回到最后一个可见页面就可以。