1

我在MS Surface 项目上的TagVisualizer控件上苦苦挣扎。从理论上讲,控制看起来很棒,允许您响应来自现实世界物理对象的输入

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

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

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

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

对我来说,该控件在实践中似乎完全没用,因为它总是会干扰您的应用程序的其他控件。我在这里想念什么?

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

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

4

1 回答 1

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>
于 2010-04-30T15:23:35.253 回答