微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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类.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐