【问题标题】:Prevent Pivot navigation in Windows Phone阻止 Windows Phone 中的枢轴导航
【发布时间】:2011-08-07 19:46:16
【问题描述】:

我有一个适用于 Windows Phone 的录音应用程序。它由一个带有两个枢轴项的枢轴控件组成。一种用于录音控制,另一种用于查看和收听录制的项目。

在录制过程中,我需要一种方法来防止用户离开当前的数据透视项目,但要保留整个数据透视项目移动但不翻转到下一个项目的感觉,如如果没有。

我知道我可以使用 Silverlight Toolkit 中的 GestureListener,但使用它我需要自己实现对枢轴运动的模拟。

是否有防止枢轴导航的内置方法?

如果不是,您能否举个例子说明如何在手势翻转时为控制运动设置动画?

【问题讨论】:

  • 您可以在录制过程中删除第二个 PivotItem,然后重新插入吗?或者只是在录制时更改其可见性?

标签: windows-phone-7 pivot


【解决方案1】:

用户是否必须留在PivotItem? 上。如果没有,您可以禁用第二个 PivotItem,以便用户知道它在那里,但实际上不能与之交互。

secondPivotItem.IsEnabled = false;

或者,您可以在需要时动态插入第二个 PivotItem,并在不需要时将其移除。例如录制时:

mainPivot.Items.Remove(secondPivotItem);

那么当你希望第二个 PivotItem 出现时:

mainPivot.Items.Add(secondPivotItem);

唯一的“问题”是当屏幕上只有一个 PivotItem 时,用户无法滚动。但是,这就是 Pivot 控件应该发挥作用的方式。

如果您真的希望用户回滚到它自己,您可以创建一个空白的 PivotItem(没有标题)。然后,处理 Pivot 的 LoadingPivotItem 事件。检查即将加载的项目是否为空白项目。如果是这样,则使用Pivot.SelectedItem = recordingPivotItem 导航回记录数据透视项。然后可以在录制结束时使用上述方法动态添加第二个 PivotItem。这不是枢轴的正常 UX,但应该做你想要实现的。

【讨论】:

  • 我将动态删除和添加第二个数据透视项目。谢谢。
  • 由于某种原因,我在尝试删除数据透视项目时收到“A 参数不正确”异常。我已经尝试了几种方法来索引我想要删除的项目,但我仍然得到同样的异常。更新:我还发现这是 Pivot control forums.create.msdn.com/forums/p/65457/469079.aspx 的一个已知错误,因此如果在数据透视项目的标题中有文本块,则不可能动态显示/隐藏数据透视项目。
【解决方案2】:

在我看来,最好的解决方案是使枢轴控件完全不可见以进行命中测试。我只需设置 PivotMain.IsHitTestVisible = false 并在完成录制时将其设置回 true。

关于如何使特定元素命中测试可见,同时使整个全景图或枢轴项目命中测试不可见,有一个很好的附加属性方法: 这是作者的博客文章的链接以及源代码: http://blogs.msdn.com/b/luc/archive/2010/11/22/preventing-the-pivot-or-panorama-controls-from-scrolling.aspx

在将带有文本块标题的枢轴项目的动态加载和删除添加到 SDK 的枢轴控件之前对我有效。

【讨论】:

    【解决方案3】:

    将一个人锁定在一个数据透视项中或禁用一个数据透视项以使一个人无法导航的不利方面是会让用户感到沮丧。 PivotItems 是用来来回滑动的,编写一个行为与此不同的应用程序会影响用户体验,因为该应用程序不会按照他们期望的方式运行。

    就个人而言,如果您要将它们锁定到一个透视项目中,我认为您应该继续创建另一个没有 Pivot 控件的页面并导航到它。此外,无论您是否选择这样做,您都需要记住,无论它们是被锁定到某个数据透视项还是被导航到另一个页面,后退按钮都必须按预期工作,否则应用程序赢了'不通过认证。

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多