1

当我在我的 Surface 表上放置一个字节标签时,标签可视化器应能识别该标签,并在标签对象下方显示标签可视化(只是一个黑色圆圈)。

在我的标签可视化下方是一个 WPF Bing 地图控件。

问题是:地图将识别的标签视为接触点。对于将标签放置在屏幕上时产生的 TouchFrameEventArgs e:

e.GetTouchPoints(myMap)
Count = 1
[0]: {Microsoft.Surface.Presentation.Input.SurfaceTouchPoint}

即使此 touchPoint 的 TouchDevice 由 TagVisualizer 而不是地图捕获,地图控件也会获得一个触摸点:

_touchPoint.TouchDevice.Captured.ToString()
"Microsoft.Surface.Presentation.Controls.TagVisualizer"

为什么会这样?也就是为什么在TagVisualizer 捕捉到标签之后地图控件会得到一个触摸点?

这是一个问题,因为当一个标签在桌子上时,地图无法通过其他触摸正常平移和缩放……因为它将标签视为另一个手指!我想停下来!

标签可视化器横跨整个屏幕,因此整个应用程序是可视化器的子元素。

我正在为 Surface 制造的设备、实际的 MS Surface Table(Samsung SUR40)开发程序,并在不是为 Surface 设计的普通触摸屏显示器上开发我的程序(使用输入模拟器对其进行测试)。有趣的是,这个问题发生在实际的 Surface 表上,但在不是为 Surface 制作的显示器上(即使用输入模拟器),症状有所不同。

我努力了:

this.myMap.ReleaseTouchCapture(_touchPoint.TouchDevice);

...在识别标签本身的触摸事件之后,但这并没有做任何事情,因为触摸实际上并没有被地图控件捕获。

有人能帮忙吗?有谁知道 Bing Maps WPF 控件如何使用触摸事件?或者 TagVisualizer 如何将标签视为触摸?

非常感谢!

4

1 回答 1

1

在对此进行了更多故障排除之后,来自标签的触摸事件似乎实际上来自标签区域之外的物理对象。我用吸收红外的黑色覆盖了物体(使其对红外摄像机不可见),从而消除了触摸事件。问题解决了!

事实证明,当标签被识别时,TagVisualizer 不会发送触摸事件。

于 2013-01-04T18:30:32.610 回答