1

Silverlight Bing Mapで、ドラッグとクリックの両方が可能な画鋲を作成しようとしています。ここhttp://pietschsoft.com/post/2010/05/30/Draggable-Pushpins-using-Bing-Maps-Silverlight-Control.aspx で、ドラッグ可能な部分を実現するためのコードを見つけました。

ピンをドロップするためにマップ上でマウスクリックをマップしました。

ただし、問題(これはデフォルトのプッシュピンにも存在します)は、プッシュピンのクリックが最初にマップコントロールによって処理されるように見えるため、プッシュピンにイベントを登録する代わりに、別のピンをドロップすることになります。

ピンをボタンであるControlTemplateに置き換えると、クリックをトラップできますが、ドラッグ可能なプッシュピンがなくなりました。

誰かが解決策をお勧めできますか?

4

1 に答える 1

1

私はこのアプローチが機能することを発見しました。他の誰かを助けるためにここにそれを記録します。

  1. 上記のリンクからDraggablePushpinのコンテンツテンプレートを作成して、DraggableButton(下)のみが含まれるようにします。
  2. Buttonから継承してDraggableButtonを作成します(上記のテンプレートで参照)

  3. このDraggableButtonで、OnMouseLeftButtonDownとOnMouseLeftButtonUpをオーバーライドし、それらをDraggablePushpinに渡します。DraggableButtonにThePinというプロパティを作成し、それをDraggablePushpinのOnApplyTemplateメソッドに設定しました。OnApplyTemplateでGetTemplateChild()を呼び出して、画鋲のDraggableButtonインスタンスへの参照を取得できます。

  4. DraggableButtonは、カスタムアクションのClickイベントをオーバーライドし、他のイベントをDraggablePushpinに渡して、期待どおりに機能するようになりました。

これを行うためのよりクリーンな方法があるかもしれませんが、これは私にとってうまくいったことです。

于 2011-04-20T04:04:51.803 に答える