2011-04-19 66 views
1

我正在嘗試在可拖動以及可點擊的Silverlight Bing地圖中創建圖釘。我在這裏發現了一些代碼http://pietschsoft.com/post/2010/05/30/Draggable-Pushpins-using-Bing-Maps-Silverlight-Control.aspx來實現可拖動的部分。Silverlight bing地圖中的可拖動AND可點擊圖釘

我已經在地圖上映射了鼠標點擊以放棄一個別針。

但是,問題(也存在於默認圖釘中)是,點擊圖釘似乎首先由地圖控件處理,因此我最終丟棄了另一個圖釘,而不是在圖釘上註冊事件。

如果我用一個ControlTemplate替換了一個按鈕,我可以捕捉點擊,但現在我沒有可拖動的圖釘。

任何人都可以推薦一個解決方案嗎?

回答

1

我發現這種方法工作。在這裏錄製它,以便幫助其他人。

  1. 從上面的鏈接爲DraggablePushpin創建一個內容模板,以便它只包含一個DraggableButton(下面)。從按鈕
  2. 繼承創建DraggableButton(在上面的模板引用)

  3. 在這種DraggableButton,覆蓋OnMouseLeftButtonDown在與OnMouseLeftButtonUp,並將它們傳遞給DraggablePushpin。我在DraggableButton上創建了一個名爲ThePin的屬性,並將其設置在DraggablePushpin的OnApplyTemplate方法中。您可以在OnApplyTemplate中調用GetTemplateChild()以獲取對圖釘中DraggableButton實例的引用。

  4. DraggableButton現在可以重寫自定義操作的Click事件,並將其他事件傳遞給DraggablePushpin,以便按預期工作。

也許有一個更乾淨的方法來做到這一點,但這是對我來說是什麼工作。