WPF ScrollViewer滚动灵敏度

Chr*_*phe 3 wpf scroll button scrollviewer

我正在开发一个WPF应用程序,用于带触摸屏的销售点.我在ScrollViewer中有一个带有产品按钮的ItemsControl.用户可以通过用手指拖动来滚动(平移)产品.要将产品添加到购物车,用户只需触摸产品按钮即可.到现在为止还挺好.

然而,由于触摸屏表面非常光滑和抛光,因此当试图按下按钮时,用户的手指有时会滑动一点点.在这种情况下,没有注册按钮单击.相反,ScrollViewer会滚动一小段动作.

现在,我的问题是:有没有办法降低ScrollViewer的灵敏度,因此需要更长的拖动才能启动滚动并抑制click事件.

谢谢你的建议!

最好的祝福,

克里斯

小智 5

我有同样的敏感问题,并以这种方式解决:

创建自己的ScrollViewer,它继承自原生ScrollViewer:

  1. 覆盖OnManipulationDelta方法
  2. 检查手指是否移动得足够(e.CumulativeManipulation.Translation.Y)
  3. 如果没有,请不要调用base.OnManipulationDelta(e).否则,请致电base.OnManipulationDelta(e)

看起来本机控制平移阈值很少为3像素,这就是为什么触摸点击很容易注册为平移.通过这个技巧,您可以定义自己的阈值.我使用了35像素(确切地说,WPF中的设备无关像素)

  • 我用属性e.CumulativeManipulation.Translation.Length> 35解决了这个问题.在这种情况下,长度是手指的开始和当前位置之间的差值. (2认同)