2016-07-22 41 views
7

我有一个WPF应用程序,它被设计用于触摸屏。单触读取滚动动作

我使用的列表视图与一组图像,以在全尺寸图像控制

所选择的图像显示在触摸屏上的我可以简单地通过但在列表视图项触摸图像选择图像我有一个小问题。

当用户触摸屏幕时,用户手指通常会略微移动,同时仍然与屏幕接触,导致列表视图将触摸解释为滚动请求。

这意味着只有当用户在与屏幕接触时小心或碰巧没有移动时才会发生所需的选择。

我认为这是一个问题,它确定了滚动动作被请求的阈值,但我无法找到任何解决此问题的方法。

谁能帮助?

回答

2

您可以手动切换PanningMode以获取ListView的internal Scrollviewer。这里是如何得到的ScrollViewer:

// Get the border of the listview (first child of a listview) 
Decorator border = VisualTreeHelper.GetChild(myListView, 0) as Decorator; 

// Get scrollviewer 
ScrollViewer scrollViewer = border.Child as ScrollViewer; 

现在,您可以访问的ScrollViewer PanningMode财产。

您将在panningmode仅设置为VerticalFirst,一旦手指移动使用ManipulationDelta事件你的口味的特定阈值,并且将它设置为None时再释放手指(ManipulationCompleted引发的事件)。