silverlight bing map中的可拖动和可点击的图钉

时间:2011-04-19 06:31:04

标签: silverlight button draggable bing

我正在尝试在Silverlight Bing Map中创建一个可拖动和可点击的图钉。我在这里找到了一些代码http://pietschsoft.com/post/2010/05/30/Draggable-Pushpins-using-Bing-Maps-Silverlight-Control.aspx来实现可拖动的部分。

我已在地图上映射鼠标点击以放置图钉。

然而,问题(这也存在于默认的图钉中)是点击图钉似乎首先由地图控件处理,所以我最终删除了另一个图钉,而不是在图钉上注册事件。

如果我用一个按钮ControlTemplate替换该针,我可以捕获点击,但现在我没有可拖动的图钉。

有人可以推荐一个解决方案吗?

1 个答案:

答案 0 :(得分:1)

我发现这种方法有效。在此录制,以便帮助其他人。

  1. 从上面的链接为DraggablePushpin创建一个内容模板,以便它只包含一个DraggableButton(下面)。
  2. 从Button继承以创建DraggableButton(在上面的模板中引用)

  3. 在此DraggableButton中,重写OnMouseLeftButtonDown和OnMouseLeftButtonUp并将它们传递给DraggablePushpin。我在DraggableButton上创建了一个名为ThePin的属性,并在DraggablePushpin的OnApplyTemplate方法中设置它。您可以在OnApplyTemplate中调用GetTemplateChild()以获取对图钉中DraggableButton实例的引用。

  4. DraggableButton现在可以覆盖自定义操作的Click事件,并将其他事件传递给DraggablePushpin,以便它按预期工作。

  5. 可能有一种更清洁的方法,但这对我有用。