Surfaceテーブルにバイトタグを配置すると、タグはタグビジュアライザーによって適切に認識され、タグ付けされたオブジェクトの下にタグの視覚化(黒い円のみ)が表示されます。
タグの視覚化の下には、WPFBingマップコントロールがあります。
問題は次のとおりです。マップは、認識されたタグをタッチポイントとして扱っています。タグが画面に配置されたときに生成されるTouchFrameEventArgseの場合:
e.GetTouchPoints(myMap)
Count = 1
[0]: {Microsoft.Surface.Presentation.Input.SurfaceTouchPoint}
このtouchPointのTouchDeviceは、マップではなくTagVisualizerによってキャプチャされますが、マップコントロールはタッチポイントを取得します。
_touchPoint.TouchDevice.Captured.ToString()
"Microsoft.Surface.Presentation.Controls.TagVisualizer"
なぜこれが起こるのですか?つまり、TagVisualizerがタグをキャプチャした後、マップコントロールがタッチポイントを取得するのはなぜですか?
これは問題です。タグがテーブル上にある場合、他のタッチでマップを通常どおりパンおよびズームできないためです...タグを別の指として扱っているためです。これをやめたい!
タグビジュアライザーは画面全体に表示されるため、アプリ全体がビジュアライザーの子要素になります。
私は、Surface用に作成されたデバイス(実際のMS Surfaceテーブル(Samsung SUR40))のプログラムに取り組んでおり、Surface用に設計されていない通常のタッチスクリーンモニターでプログラムを開発しています(入力シミュレーターを使用してテストしています)。興味深いことに、この問題は実際のSurfaceテーブルで発生しますが、Surface用に作成されていない(つまり、入力シミュレーターを使用している)モニターでは症状が異なります。
私が試してみました:
this.myMap.ReleaseTouchCapture(_touchPoint.TouchDevice);
...タグ自体のタッチイベントを認識した後ですが、タッチが実際にマップコントロールによってキャプチャされていないため、これは何もしません。
誰かがこれを手伝うことができますか?Bing Maps WPFコントロールがタッチイベントをどのように使用するか知っている人はいますか?または、TagVisualizerはタグをタッチとしてどのように扱いますか?
どうもありがとう!