我正在使用循环触摸屏幕覆盖并需要在列表框项目上进行拖放动作(即手指向下和移动)以与鼠标拖放操作相同(即,单击向下,按住手指并移动)。我非常渴望得到这方面的帮助 - 我可以看到很多关于如何在wpf列表框中实现滚动响应到触摸屏的文章(这些项目是上下滚动但是没有移动/保持到手指是)但这与我想要的相反。
任何帮助都非常感谢,我已经坚持了一段时间,我不知道如何解决这个问题。
非常感谢,
丹
答案 0 :(得分:2)
我假设您使用的是Surface SDK。 (如果没有,为什么不呢?) 那么这是一个很好的资源:http://msdn.microsoft.com/en-us/library/ff727837.aspx
编辑:重新阅读您的问题我看到您使用了Touch-overlay。它们是不是会触发Windows 7触摸事件,而只是模拟鼠标?如果是这样,那么我有点好奇为什么使用普通鼠标拖拽它不起作用。
EDIT2:
所以你需要做的是在datatemplate中添加两个监听器; PreviewTouchDown和PreviewTouchMove。
这是我用鼠标开始拖动操作的方法,但它也可以用触摸功能进行一些修改。
private void TreePreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
_startPoint = e.GetPosition(null);
_checkDragDrop = true;
}
private void TempTreeMouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
var mousePos = e.GetPosition(null);
var diff = _startPoint - mousePos;
if (_checkDragDrop)
{
if (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance || Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance)
{
_checkDragDrop = false;
.
.
.
DragDropEffects val = DragDrop.DoDragDrop(DragSourceList, dragData, DragDropEffects.Move);
}
}
}
}
您可能无法使用Telerik类。