MS Surface Tag Visualizer窃取了联系事件

Isa*_*avo 1 c# wpf routed-events pixelsense

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

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

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

Window
  `- Grid
      `- LayersPanel
          `- TagVisualizer
          `- Layer 1
          `- Layer 2
          `- Layer 3
          `- Layer 4    
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Jos*_*elo 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>
Run Code Online (Sandbox Code Playgroud)

  • +1这也适合我.如果有疑问,请参阅SDK示例,它们将帮助您构建应用程序. (2认同)