当我点击bing地图上的图钉时,我显示Custom InfoBox
,因为Windows应用商店SDK中没有内置。它显示正常,但当用户在框外点击时,我想隐藏/关闭它,就像你在Windows 8中的原生bing地图应用程序上看到的那样。
我尝试在地图上设置Tapped
回调,但问题是即使点击图钉显示信息框也会一直调用。
当第一次点击图钉时,我可能会使用一次布尔值,但这似乎是一种丑陋的方式,实现我想要的更好的方法是什么?
答案 0 :(得分:0)
我认为解决此问题的最佳方法是使用下面的附加弹出窗口(我不确定您是否使用的是Windows 8.1,但现在这是我做出的假设)
您可以将附加的弹出按钮添加到图钉中,如下所示:
<maps:Pushpin Height="100" Width="100" Tapped="UIElement_OnTapped">
<FlyoutBase.AttachedFlyout>
<Flyout>
<Grid Width="100" Height="100" Background="Red"></Grid>
</Flyout>
</FlyoutBase.AttachedFlyout>
<maps:MapLayer.Position>
<maps:Location Latitude="47.610039" Longitude="-122.342207" />
</maps:MapLayer.Position>
</maps:Pushpin>
在Tapped事件中,您可以添加一些代码来显示弹出按钮:
var element = sender as FrameworkElement;
if (element != null) {
FlyoutBase.ShowAttachedFlyout(element);
}
因为弹出窗口是自动LightDismissable,你不必再担心关闭信息框了。
只需使用自定义信息框替换背景为红色的网格即可。 (可能是一些对齐的事情让它100%)
希望这有帮助。
答案 1 :(得分:0)
向地图添加点击/点按的事件。为了防止点击事件冒泡到地图,在图钉集上的点击事件中,事件args处理属性为true。这将使得点击图钉时地图点击甚至不会触发。您也可以向信息框添加类似的点击事件/处理属性,这样如果您点击信息框,它就不会关闭。