当我在Surface表格上放置一个字节标签时,标签可以被标签可视化器识别,并在标记对象下方显示标签可视化(只是一个黑色圆圈)。
我的标签可视化下面是WPF Bing地图控件。
问题在于:地图将识别的标签视为触摸点。对于标签放置在屏幕上时产生的TouchFrameEventArgs:
e.GetTouchPoints(myMap)
Count = 1
[0]: {Microsoft.Surface.Presentation.Input.SurfaceTouchPoint}
即使TagVisualizer而不是地图捕获了此touchPoint的TouchDevice,地图控件也会获得触摸点:
_touchPoint.TouchDevice.Captured.ToString()
"Microsoft.Surface.Presentation.Controls.TagVisualizer"
为什么会这样?也就是说,为什么在TagVisualizer捕获标签后地图控件会获得触摸点?
这是一个问题,因为当标签在桌面上时,地图无法通过其他触摸进行平移和正常缩放...因为它将标签视为另一个手指!我想停下来!
标签可视化器遍布整个屏幕,因此整个应用程序是可视化工具的子元素。
我正在开发一个用于Surface的设备程序,一个实际的MS Surface Table(三星SUR40),并在一个不是专为表面设计的普通触摸屏显示器上开发我的程序(使用输入模拟器对其进行测试)。有趣的是,这个问题出现在实际的Surface表上,但显示器上的症状不同于Surface(即使用输入模拟器)。
我试过了:
this.myMap.ReleaseTouchCapture(_touchPoint.TouchDevice);
...识别标签本身的触摸事件后,但由于地图控件实际上没有捕获到触摸,因此无法执行任何操作。
任何人都可以帮忙吗?有谁知道Bing Maps WPF控件如何使用触摸事件?或者TagVisualizer如何将标签视为触摸?
非常感谢!
答案 0 :(得分:1)
在对此进行更多故障排除之后,来自标签的触摸事件似乎实际上来自标签区域外的物理对象。我用红外吸收黑色覆盖了物体(使其对红外摄像机不可见)并消除了触摸事件。问题解决了!
事实证明,TagVisualizer在识别标签时不会发送触摸事件。