识别触摸位置

时间:2014-03-06 17:05:53

标签: c# wpf touch

我有一个WPF项目,可以识别触摸方法中的不同输入(例如手指,鼠标,标记对象),我有一个IF语句,可识别标签是否被识别并显示该系列的数据和值放置标签,然后将数据存储在变量string type中并将其显示在标签的内容中,否则会识别触摸是否是用手指触摸,并执行相同的操作。

然而,我无法实现的目标是能够识别标签或手指处于触碰状态的位置。我认为需要一个Point来获得触摸的X& Y位置,但是尝试了多次不同的事情,我无法找到需要什么参数的解决方案。

方法

void SurfaceWindow1_TouchDown(object sender, TouchEventArgs e)
{
    TouchDevice c = e.TouchDevice;


    //by default it is a blob
    string type = "Blob"; 
    Point p = c.GetPosition();
    if (c.GetIsTagRecognized() == true)
    {
        type = "Tag";
        type += (" Series: " + c.GetTagData().Series.ToString("X", CultureInfo.InvariantCulture));
        type += (" Value: " + c.GetTagData().Value.ToString("X", CultureInfo.InvariantCulture));
     // type += (" Position: " //something here);

    }
    else if (c.GetIsFingerRecognized())
    {
        type = "Finger";
    }
    //display the type of item in a label
    InfoLabel.Content = type;
}

收到的错误

  

错误1:'Point'是'System.Windows.Point'和'System.Drawing.Point'之间的模糊引用

     

错误2:方法'GetPosition'没有重载需要0个参数

1 个答案:

答案 0 :(得分:1)

  

错误1:'Point'是'System.Windows.Point'和'System.Drawing.Point'之间的模糊引用

您正在使用2个名称空间:

using System.Windows;
using System.Drawing;

并且都包含Point的定义,并且编译器在您执行时无法决定要使用哪个

Point p = c.GetPosition();

要修复它,您可以使用var

var p = c.GetPosition();
  

错误2:方法'GetPosition'没有重载需要0个参数

据我所知,TouchDevice没有GetPosition()方法,TouchEventArgsTouchEventArgs.GetTouchPoint,所以您可以这样做:

var p = e.GetTouchPoint(sender as IInputElement).Position;