触摸

时间:2016-11-12 23:55:45

标签: wpf touch scrollviewer

我在ScrollViewer中有一个带有画布的WPF应用程序。在画布上我有一些矩形,我沿着时间轴(左 - 右)拖动。这适用于鼠标,但在触摸屏上,如果画布比主窗体宽,我会得到奇怪的行为。首先,当您开始拖动矩形时,画布平移直到它滚动到极限,然后矩形开始移动。使用鼠标时我不会这样做。

另一个奇怪的是,如果我将画布(使用触摸)平移/拖动到滚动查看器的限制,则主窗体在与摇摄方向相反的一侧压缩20-50像素。一旦停止拖动,它就会弹回形状。这里发生了什么以及如何禁用此功能?

这似乎与ManipulationBoundaryFeedback有关,但我并不完全明白如何......

修改 因此,我可以通过将scrollviewer panningmode设置为矩形TouchDown处理程序中的PanningMode.None,然后将其设置回TouchUp处理程序中的PanningMode.Both来进一步了解。这解决了在矩形移动之前画布平移到极限的问题。

1 个答案:

答案 0 :(得分:0)

好吧,我终于让我的应用程序与触摸工作。如上所述,在TouchDown事件中将PanningMode设置为None消除了ScrollViewer的问题。在TouchUp事件中将其重新设置为Both,重新启用它。这意味着我无法将矩形拖过ScrollViewer开始平移的点,但在我的情况下,这不是问题。

我在TouchMove事件期间触发了MouseLeftButtonDown事件也遇到了一些问题,所以我在TouchDown期间删除了它

-= new MouseButtonEventHandler(drag_start)

并在TouchUp期间重新添加它以消除毛刺行为。

+= new MouseButtonEventHandler(drag_start)

也许这将有助于将来的某个人......