Point / Point3D到TouchPoint?

时间:2012-06-15 22:06:02

标签: c# wpf touch touchscreen

我写了一个使用鼠标的C#程序,它运行得很好。我现在希望实现触摸支持。问题是我经常跟踪鼠标并在整个程序中使用Point和Point3D类。当我使用触摸时,我需要跟踪“鼠标”移动的位置。我可以得到触摸的坐标但这就是我被卡住的地方。我正在使用Helix 3D Toolkit,大多数函数需要Point或Point3D输入参数。我的问题是,有没有办法将TouchPoint转换为Point或Point3D?或者还有其他“简单”的方式来实现触摸支持吗?

以下是我正在尝试做的一些代码:

private Point3D? GetPoints(TouchEventArgs e)
{
    var p = e.GetTouchPoint(ViewPort);
    var ray = Viewport3DHelper.Point2DtoRay3D(ViewPort.Viewport, p); //error here at p
    if (ray != null)
    {
        var pi = ray.PlaneIntersection(new Point3D(0, 0, 0), new Vector3D(0, 0, 1));
        if (pi.HasValue)
            return pi;
    }
    return null;
}

1 个答案:

答案 0 :(得分:3)

想出来。我刚用p.Bounds.X和p.Bounds.Y做了一个新的Point()。