C# WPF多点触摸-如何获取所有接触点?

C# WPF多点触摸-如何获取所有接触点?,c#,wpf,events,multi-touch,touchscreen,C#,Wpf,Events,Multi Touch,Touchscreen,我们正在评估触摸屏键盘,其中一款需要同时跟踪10个手指。问题是触摸屏驱动程序非常不稳定(而且没有固定版本)。对于如此多的手指,它每秒为FrameReported事件发送2500多个事件。根本没有办法处理所有这些问题,即使我们一开始就放弃了90%。要跟上这些数据并做任何有意义的事情是根本不可能的 我没有使用System.Windows.Input.Touch.FrameReported,而是尝试使用窗口的(预览)TouchMove事件;这里也有同样的问题 所以现在我想在一个单独的线程中进行投票,而

我们正在评估触摸屏键盘,其中一款需要同时跟踪10个手指。问题是触摸屏驱动程序非常不稳定(而且没有固定版本)。对于如此多的手指,它每秒为
FrameReported
事件发送2500多个事件。根本没有办法处理所有这些问题,即使我们一开始就放弃了90%。要跟上这些数据并做任何有意义的事情是根本不可能的

我没有使用
System.Windows.Input.Touch.FrameReported
,而是尝试使用窗口的(预览)
TouchMove
事件;这里也有同样的问题

所以现在我想在一个单独的线程中进行投票,而不是使用事件,但是我找不到关于如何获取所有当前接触点的信息

我唯一发现的是WinForms黑客,但这不是一个选项,因为那样我将无法在我的窗口中呈现任何WPF控件

有什么解决办法吗

编辑1:

这是处理所有移动事件的代码:

private void UserControlTouchMove(object sender, TouchEventArgs e)
{

        //Update Position of the corresponding point
    var touch = e.GetTouchPoint(this);
    var id = touch.TouchDevice.Id;
    e.Handled = true;
    var position = touch.Position;
    //update finger on display, quick and dirty
    if (m_ShowFingers)
    {
        foreach (var finger in m_Fingers)
        {
            if (id == (int)finger.DataContext)
            {
                finger.RenderTransform = new TranslateTransform(position.X - HalfFingerSize, position.Y - HalfFingerSize);
                break;
            }
        }
    }
}

报道这么多事件是正常的。在TouchEventArgs上,您不能只处理它并捕获触摸设备,这样您就可以独立捕获所有10个设备。。。e、 已处理=正确;还有这个。CaptureTouch(即TouchDevice);之后您可以检查事件的id是否与前一个相同。。。或者我不明白你的问题,我已经添加了方法。我真的不知道为什么我不能继续处理这些事件。我甚至还没有对这些数据做任何想象。这一切都很好,最多5个手指,但然后事件只是堆积起来。