c# – 多点触摸屏和WPF列表框

我正在使用循环触摸屏幕覆盖并且需要在列表框项目上进行拖放动作(即,手指向下和移动)以与鼠标拖放相同(即,向下,按住手指并移动).我非常渴望得到这方面的帮助 – 我可以看到很多关于如何在wpf列表框中实现滚动响应到触摸屏的文章(这些项目是上下滚动但是没有移动/保持到手指是)但这与我想要的相反.

任何帮助都非常感激,我已经坚持了一段时间,我不知道如何解决这个问题.

非常感谢,

最佳答案 我假设您使用的是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类.

点赞