代码之家  ›  专栏  ›  技术社区  ›  Isak Savo

MS Surface Tag Visualizer窃取联系人事件

  •  1
  • Isak Savo  · 技术社区  · 14 年前

    我在挣扎 TagVisualizer MS Surface项目的控件。理论上,这个控制看起来很好,可以让你对真实世界的物理对象的输入做出反应

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

    在我的应用程序中,我希望有一种“层”类型的方法,其中每个层都可以响应(联系人)输入:

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

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

    在我看来,这个控件在实践中似乎完全没有用处,因为它总是会干扰应用程序的其他控件。我错过了什么?

    所以我的问题是 :关于如何解决这个问题有什么建议吗?有人在类似的场景中使用过标记可视化工具吗?如果是,你是怎么解决的?

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

    1 回复  |  直到 14 年前
        1
  •  7
  •   Josh Santangelo    14 年前

    当使用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>