2011-04-19 119 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,以便按预期工作。

也许有一个更干净的方法来做到这一点,但这是对我来说是什么工作。