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

有没有一种使用TouchEnter的方法,并且TouchLeave仅在将手指拖到UIt中拖动时捕获。当为每个touchUp和touchDown触发这些事件时,区分这些事件的最佳方法是什么?

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

没有引发PreviewTouchEnter和PreviewTouchLeave事件,只有PreviewTouchDown和PreviewTouchUp。手指放到UIElement上然后在其上举起的事件的顺序如下:

  • 触摸输入
  • PreviewTouchDown
  • TouchDown
  • PreviewTouchUp
  • TouchUp
  • TouchLeave

  • 此序列无助于区分由于手指在屏幕上拖动到UIElement中而发生的TouchEnter与直接放到UIElement上的手指之间的区别。我是否缺少某些东西,或者框架本身不支持这种区分?

    最佳答案

    您是否可以使用TouchDevice类来跟踪生成触摸的位置。新的触摸具有新的ID,因此您可以区分现有的触摸和新的触摸,以及哪些元素正在捕获设备。我想这规避了操纵事件和正常过程,但我希望能有所帮助。

    10-06 07:10