MS Surface Tag Visualizer窃取了联系事件

时间:2010-04-30 09:55:53

标签: c# wpf pixelsense routed-events

我正在努力使用MS Surface项目上的TagVisualizer控件。理论上,控制似乎很棒,允许您响应来自现实世界物理对象的输入

问题是控件将覆盖整个屏幕(因为我想在整个屏幕上捕获标签),因此,我的应用程序中没有其他控件将接收触摸事件。 (除非,它们是视觉树中的直接上升者)。

在我的应用中,我想要一种“层”类型的方法,其中每个层都可以响应(联系)输入:

Window
  `- Grid
      `- LayersPanel
          `- TagVisualizer
          `- Layer 1
          `- Layer 2
          `- Layer 3
          `- Layer 4    

现在我把标签可视化器放在哪里并不重要,它总是会从所有或其他一些层中窃取联系事件。 (由于RoutedEvents)的性质

对我而言,控件在实践中似乎完全没用,因为它总会干扰应用程序的其他控件。我在这里缺少什么?

所以我的问题是:有关如何解决此问题的任何建议?有没有人在类似的场景中使用TagVisualizers?如果是这样,你是怎么解决的?

顺便说一下,这些图层都可以正常工作,因为它们只会窃取直接位于子元素之上的事件(图层的其余部分对于测试来说是不可见的)

1 个答案:

答案 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>