【发布时间】:2012-02-11 01:02:09
【问题描述】:
对于描述的基本场景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 上然后抬起的事件顺序如下:
- 触摸回车
- PreviewTouchDown
- 触地
- 预览修饰
- 修饰
- 触摸离开
此序列无助于区分由于手指在屏幕上拖动到 UIElement 中而发生的 TouchEnter 与直接放在 UIElement 上的手指。是我遗漏了什么,还是框架本身不支持这种差异化?
【问题讨论】:
标签: wpf c#-4.0 touch multi-touch