如何通过弹出窗口显示我的图钉?

时间:2014-11-01 10:06:19

标签: c# winrt-xaml bing-maps pushpin

我在Bing地图上生成地图制作者。如果我使用在XAML中添加的设计时地图图层:

<bm:Map.Children>
    <!-- Data Layer-->
    <bm:MapLayer Name="DataLayer"/>

......效果很好。但是,我决定如果我在地图上绘制多个不同的标记集,我应该将每个集合放在它自己的地图图层上。所以我添加了这样的代码:

private async void Gener8MapMarkers(List<PhotraxBaseData> _pbd, bool Cre8DynamicMapLayer)
{
    . . .
    if (Cre8DynamicMapLayer)
    {
        MapLayer newLayer = new MapLayer();
        photraxMap.Children.Add(newLayer);
        AddPushpin(loc, stuff, newLayer);
    }
    else
    {
        AddPushpin(loc, stuff, DataLayer);
    }
    . . .

但请注意当我执行此操作时,图钉如何通过弹出窗口显示(仅当我动态创建MapLayer [s]时):

enter image description here

将后续集合添加到自己的MapLayer中是一个坏主意(我应该将所有内容添加到&#34; DataLayer&#34;)?

如果没有,如何在没有通过弹出窗口显示图钉的情况下使用多个MapLayers?

更新

是的,Marvin Smit的建议有效,即:

if (Cre8DynamicMapLayer)    
{
    MapLayer newLayer = new MapLayer();
    //photraxMap.Children.Add(newLayer);
    photraxMap.Children.Insert(0, newLayer);
    AddPushpin(loc, stuff, newLayer);
}

他的兄弟Rik可能是更好的篮球运动员,但是我怀疑Rik可以从上篮中解脱出来。

1 个答案:

答案 0 :(得分:1)

您正在为在弹出图层顶部创建的图钉堆叠正在使用的图层。

通过更改顺序,您可以将图层添加到堆栈中,从而获得所需的行为。

而不是

photraxMap.Children.Add(newLayer);

使用

photraxMap.Children.Insert(0, newLayer);

这将导致新图层被插入&#39;底部&#39;层而不是顶层&#39; (如果您认为&#39; top&#39;层最接近您)