1

我正在尝试在 Silverlight Bing 地图中创建一个既可拖动又可点击的图钉。我在这里找到了一些代码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 回答