Windows Phone中的三个导航菜单和圆形导航

时间:2011-12-15 04:53:05

标签: windows-phone-7.1 windows-phone-7

在我的Windows Phone 7.5(Mango)应用程序中,我有这种情况。我必须使用3个菜单按钮导航以分离应用程序的部分,如下图所示: enter image description here

点击A进入A页,On B进入B,C表示相同。

页面A显示将用户带到特定部分/页面的其他按钮。 与页面B和页面C相同。

问题/问题: 我确信这会在使用BackButton时导致循环导航问题。我想知道处理这种情况的最佳方法。

我能想到的一种方式是清除BackStack,我知道如何做到这一点,但想知道是否有更好的出路。

数据透视页:我不确定是否应该使用数据透视控件。

其他复杂方式:使用公共页面并根据按钮点击隐藏控件,即不显示导航到新页面,只显示与A或B或C相关的控件并隐藏不相关的内容。我不确定这是否是一个好方法,因为我每页都有特定的图像和动画,而且看起来很复杂。

3 个答案:

答案 0 :(得分:1)

更好的用户体验是使用Pivot。用户讨厌点击按钮。看看Windows Phone的所有其他应用程序是如何工作的,您将看到什么被认为是直观/本机体验。

答案 1 :(得分:0)

由于其他一些设计问题,Pivout无法满足我的需求。

所以我废弃了使用上面菜单的想法,而是创建了一个separte页面(home),它将有3个按钮进行导航,如果用户想要更改部分,他们会回家并从那里选择。

答案 2 :(得分:0)

当用户沿特定路径导航时,您可以处理/覆盖/使用后退按钮事件。您可以使用NavigationServce.RemoveBackEntry()删除最新的日记帐分录。

在你的一个页面中(或全部,取决于你的导航可能性),页面'onNavigatedTo()处理程序上的这段代码可以解决圆形导航问题。您还可以在查询字符串中添加标记,以帮助识别用户选择导航的路径

protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e){
    NavigationService.Navigate(new Uri("/PageA.xaml?fromPageC=true"));
}

public override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    if(e.NavigationMode == NavigationMode.New && NavigationContext.QueryString.ContainsKey("resultsInCircular")
{
    NavigationService.RemoveBackEntry(); // might have to repeat this a number of times        depending on the route that the user has taken
})
}