WPF组件中当设置IsManipulationEnabled="True"时导致TouchUp、触摸Click不能被触发的解决方法
WPF元素当设置IsManipulationEnabled=true的时候,TouchMove和TouchUp事件都会优先去触发产生Manipulation事件,而不会被元素中的TouchMove、TouchUp关联的事件处理程序所捕获。
Touch事件与Manipulation 关系如下:
如上面这段话所说,当第一个Touch Device 产生TouchDown事件且e.Handled没有被设置为true的话,就会触发产生Manipulation事件的有关逻辑。因此,如何要在特定控件上(特别时按钮控件)使用TouchUp事件,而忽略Manipulation事件,则需要在该控件的TouchDown事件上绑定事件处理程序,在事件处理程序中明确写出e.Handled=true,这样就不会阻止TouchUp事件,可以被用户捕获。
参考:
https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/input-overview?view=netframework-4.8