我正在尝试在Silverlight Bing Map中创建一个可拖动和可点击的图钉。我在这里找到了一些代码http://pietschsoft.com/post/2010/05/30/Draggable-Pushpins-using-Bing-Maps-Silverlight-Control.aspx来实现可拖动的部分。
我已在地图上映射鼠标点击以放置图钉。
然而,问题(这也存在于默认的图钉中)是点击图钉似乎首先由地图控件处理,所以我最终删除了另一个图钉,而不是在图钉上注册事件。
如果我用一个按钮ControlTemplate替换该针,我可以捕获点击,但现在我没有可拖动的图钉。
有人可以推荐一个解决方案吗?
答案 0 :(得分:1)
我发现这种方法有效。在此录制,以便帮助其他人。
从Button继承以创建DraggableButton(在上面的模板中引用)
在此DraggableButton中,重写OnMouseLeftButtonDown和OnMouseLeftButtonUp并将它们传递给DraggablePushpin。我在DraggableButton上创建了一个名为ThePin的属性,并在DraggablePushpin的OnApplyTemplate方法中设置它。您可以在OnApplyTemplate中调用GetTemplateChild()以获取对图钉中DraggableButton实例的引用。
DraggableButton现在可以覆盖自定义操作的Click事件,并将其他事件传递给DraggablePushpin,以便它按预期工作。
可能有一种更清洁的方法,但这对我有用。