1

MSSurfaceプロジェクトの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 に答える