wpf - 区分 TouchUp 和 TouchLeave 以及 TouchDown 和 TouchEnter 的策略?

标签 wpf c#-4.0 touch multi-touch

对于描述的基本场景 in the msdn overview (under Touch and Manipulation) TouchEnter 和 TouchLeave 分别为每个相应的 TouchDown 和 TouchUp 触发。与鼠标不同的是,Touch 和 Stylus 不受限于保持与屏幕的接触。

有没有办法使用TouchEnter和TouchLeave只在手指是时捕获拖动 进入 UIElement。由于每次 touchUp 和 touchDown 都会触发这些事件,区分这些事件的最佳方法是什么?

一种适用于单指情况的策略是在 TouchDown 上设置一个标志,并检查该标志是否在 TouchUp 上设置。这允许对 TouchUp 进行一些条件检查。但是,对于多个手指,这是不可行的。

没有触发 PreviewTouchEnter 和 PreviewTouchLeave 事件,只有 PreviewTouchDown 和 PreviewTouchUp。手指放在 UIElement 上然后抬起的事件序列如下:

  • 触摸输入
  • 预览TouchDown
  • 达阵
  • 预览TouchUp
  • 润色
  • 触假

  • 此序列无助于区分由于手指在屏幕上拖动到 UIElement 中而发生的 TouchEnter,与直接放在 UIElement 上的手指。我是否遗漏了什么,或者框架本身不支持这种差异化?

    最佳答案

    你能用TouchDevice吗?用于跟踪生成触摸的位置的类。新触摸被赋予一个新 ID,因此您可以区分现有触摸和新触摸,以及哪些元素正在捕获设备。我想这可以绕过操纵事件和正常流程,但我希望这会有所帮助。

    关于wpf - 区分 TouchUp 和 TouchLeave 以及 TouchDown 和 TouchEnter 的策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8874063/

    相关文章:

    c# - WPF ListViewItem 多个事件通过 AttachedCommandBehaviour

    asp.net-mvc - MVC 5 DropDownListFor 数据库 Linq;

    c# - 调用 C# COM 组件时在 javascript 中键入不匹配错误

    iOS - 水平滑动项目

    javascript - 如何在移动设备上启用长按

    android - 在 android 中触摸屏幕时会发光吗?

    c# - 与 WPF 属性异步

    c# - 绑定(bind)到显式接口(interface)实现的 SortDescription

    c# - 如何根据属性隐藏 wpf 数据网格列

    C# 2010 : Deploying Multiple Apps. 。需要 Sure Fire 方式来更新