我写了一个使用鼠标的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;
}
答案 0 :(得分:3)
想出来。我刚用p.Bounds.X和p.Bounds.Y做了一个新的Point()。