我正在努力使用MS Surface项目上的TagVisualizer控件。理论上,控制似乎很棒,允许您响应来自现实世界物理对象的输入
问题是控件将覆盖整个屏幕(因为我想在整个屏幕上捕获标签),因此,我的应用程序中没有其他控件将接收触摸事件。 (除非,它们是视觉树中的直接上升者)。
在我的应用中,我想要一种“层”类型的方法,其中每个层都可以响应(联系)输入:
Window
`- Grid
`- LayersPanel
`- TagVisualizer
`- Layer 1
`- Layer 2
`- Layer 3
`- Layer 4
现在我把标签可视化器放在哪里并不重要,它总是会从所有或其他一些层中窃取联系事件。 (由于RoutedEvents)的性质
对我而言,控件在实践中似乎完全没用,因为它总会干扰应用程序的其他控件。我在这里缺少什么?
所以我的问题是:有关如何解决此问题的任何建议?有没有人在类似的场景中使用TagVisualizers?如果是这样,你是怎么解决的?
顺便说一下,这些图层都可以正常工作,因为它们只会窃取直接位于子元素之上的事件(图层的其余部分对于测试来说是不可见的)
答案 0 :(得分:7)
使用TagVisualizer时,诀窍在于您必须将整个应用程序放在其中。例如:
<s:TagVisualizer>
<s:TagVisualizer.Definitions>
<s:ByteTagVisualizationDefinition Value="00" />
</s:TagVisualizer.Definitions>
<s:ScatterView>
<s:ScatterViewItem />
<s:ScatterViewItem />
<s:ScatterViewItem />
<s:ScatterViewItem />
</s:ScatterView>
</s:TagVisualizer>