【问题标题】:How to stop the WP7 pivot control handling the Flick Gesture event in Silverlight Toolkit如何在 Silverlight Toolkit 中停止处理 Flick Gesture 事件的 WP7 枢轴控件
【发布时间】:2010-10-19 09:25:12
【问题描述】:

我的 WP7 应用程序中有一个枢轴控件,它本质上响应左右滑动以在枢轴项之间移动。

然后我想将用户控件(我页面上的一个小 UI 部分)上的轻弹手势用于其他操作。

我的用户控件确实处理了该事件,但 Pivot 控件也是如此,因此它导航到下一个项目。当用户控件处理它时,我还没有弄清楚如何停止事件。

是否可以在 WP7 Pivot 控件中使用带有轻弹手势的子控件?

例如:

        private void glBlinds_Flick(object sender, FlickGestureEventArgs e)
        {
                //do stuff
                e.Handled = true;
        }

【问题讨论】:

    标签: windows-phone-7 pivot silverlight-toolkit


    【解决方案1】:

    最近发布的这个解决方案似乎适用于处理 pano/pivot 上的手势冲突的人们。您可能想检查一下。

    Preventing the Pivot or Panorama controls from scrolling

    【讨论】:

    • 谢谢 Mick - 你确定它可以与手势控件一起使用吗?在 cmets 中,另一个用户似乎遇到了问题(我没有尝试过)
    • windows 8 解决方案是 UseOptimizedManipulationRouting="False"
    【解决方案2】:

    简短的回答是不要将支持手势的控件放在另一个也支持相同手势的控件之上。

    请参阅这个非常相似的问题的答案以获得稍长的回复:WP7 Toggle switch in a Pivot control?

    【讨论】:

    • 从技术观点来看,我认为这就是 e.Handled = 阻止事件冒泡并被进一步消耗的全部意义所在?从用户 POV 来看 - 这是完全可以接受的 - 这就像说如果外框导航依赖于点击,每页只能有 1 个点击事件!一定有解决办法?
    • 从可用性的角度来看,这很难做好。也很难让用户清楚地知道一个手势的边界在哪里结束,而下一个手势的边界在哪里开始。作为一项规则:不要这样做。如果您想违反规则,请注意后果。 AFAIK 枢轴控件不支持处理滑动手势以覆盖默认行为的方式 - 希望/可能阻止潜在地破坏默认行为。鼠标点击事件和触摸手势事件不能直接比较。不要假设它们是 - 即使工具调用触摸点击。
    • 从可用性 POV 来看,如果 UI 用清晰的分界线表示边界,我不明白为什么会出现问题 - 即。如果您在此元素上滑动它会执行 x,如果您在其他任何地方滑动它会执行 Y。用户在技术上并不知道一个控件是另一个控件的子控件 - 枢轴控件的导航元素位于顶部 - 在过去他们只需单击标签标题即可更改页面,这恰好让他们在页面上的任何位置滑动。没有办法解决这个问题似乎很奇怪 - 我必须有滑动手势,我正计划使用 Pivot sigh
    • 对我来说,可用性修复将是完全相同的 Pivot 控件布局,但滑动仅适用于标题。在其他任何地方刷卡都可以,用户永远不会知道有什么不同。感谢您的回复。
    • ps - 我在 UI 设计和交互指南中发现了这一点(尽管我仍然不是 100% 相信;)枢轴控制。”
    【解决方案3】:

    我发现这适用于在枢轴项目上合并滑块:

    LayoutRoot
      Pivot
        PivotItem
          Grid
            Scrollviewer
              [Content goes here, I use another grid]
            Slider
    

    如果我跳过网格并将滑块放在滚动查看器内,它就不起作用。我偶然发现了这个解决方案,因为我想支持横向并且仍然让滑块可见/可用。

    您也许可以将您的小 UI 片段放置在类似于我放置滑块的位置。

    【讨论】:

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