1

我正在使用 PixelSense2.0 为 Sur40 开发应用程序。我正在尝试捕获触摸输入,但它一直为我提供相同的错误:No overload for method 'GetTouchPoint' takes 0 arguments.

到目前为止,这是我的代码:

    void SurfaceWindow1_Loaded(object sender, RoutedEventArgs e)
    {


        this.TouchDown += new EventHandler<TouchEventArgs>(SurfaceWindow1_TouchDown);

    }

    void SurfaceWindow1_TouchDown(object sender, TouchEventArgs e)
    {
        LoadAnimationControl2 ani1 = new LoadAnimationControl2();
        ani1.Margin.Left = e.GetTouchPoint().Position.X;
        ani1.Margin.Bottom = e.GetTouchPoint().Position.Y;
        MainGrid.Children.Add(ani1);
    }

有没有人建议如何处理这个问题?

4

3 回答 3

2

GetTouchPoint() 有一个必需的输入参数。没有不使用参数的方法签名。您需要将 IInputElement 作为参数传递给该方法。

GetTouchPoint() MSDN 参考页

于 2013-01-08T19:19:17.877 回答
2

好吧,根据文档

public TouchPoint GetTouchPoint(
    IInputElement relativeTo
)

它需要一个IInputElementwhich is: The element that defines the coordinate space.
并返回: The current position of the touch device relative to the specified element.

因此,您需要做的是传递您的“屏幕”或任何正确的术语来获取正在查看的内容。

于 2013-01-08T19:19:49.263 回答
1
void SurfaceWindow1_TouchDown(object sender, TouchEventArgs e)
{
    LoadAnimationControl2 ani1 = new LoadAnimationControl2();
    ani1.Margin.Left = e.GetTouchPoint(this).Position.X;
    ani1.Margin.Bottom = e.GetTouchPoint(this).Position.Y;
    MainGrid.Children.Add(ani1);
}
于 2013-01-08T19:20:54.550 回答