我有一个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个参数
答案 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()
方法,TouchEventArgs
有TouchEventArgs.GetTouchPoint
,所以您可以这样做:
var p = e.GetTouchPoint(sender as IInputElement).Position;