对于所描述的基本场景in the msdn overview (under Touch and Manipulation)分别针对每个相应的TouchDown和TouchUp触发TouchEnter和TouchLeave。与鼠标不同,Touch和Stylus不受约束以保持与屏幕的接触。
有没有办法使用TouchEnter,只有当手指拖动进入UIElement时才能捕获TouchLeave。当这些事件针对每个touchUp和touchDown触发时,区分这些事件的最佳方法是什么?
一种适用于单指案例的策略是在TouchDown上设置一个标志,并检查是否在TouchUp上设置了该标志。这允许在TouchUp上进行一些条件检查。但是,对于多个手指,这是不可行的。
没有触发PreviewTouchEnter和PreviewTouchLeave事件,只有PreviewTouchDown和PreviewTouchUp。手指的一系列事件降低到UIElement然后在UIElement上升,如下:
此序列无助于将手指拖过屏幕时发生的TouchEnter与直接放在UIElement上的手指区分开来。我错过了什么,或者框架本身不支持这种区分?
答案 0 :(得分:0)
您可以使用TouchDevice类来跟踪生成触摸的位置。新的触摸被赋予一个新的ID,因此您可以区分现有的触摸和新的触摸,以及捕获设备的元素。我想这可以绕过操纵事件和正常过程,但我希望有所帮助。
答案 1 :(得分:0)
如果您为该活动检索TouchPoint
,则其上有一个名为Action
的属性,该属性会告诉您该属性是Down
,Move
还是{ {1}}事件。
Up