2010-11-28 37 views
1

以下是我对Bing Maps Silverlight天气相关实现的XAML代码。Bing地图(Silverlight)地图 - 通过XAML将画布指定为前景

这就是我要做的:

  1. 有一个Bing地图与一些(超过100)pushpins-鼠标悬停 - 显示低于contentpopup(帆布= myPopup)。够简单。
  2. 一切工作正常 - 但是,当mypopup显示在鼠标悬停时,它不在前台(其他引脚出现在contentpopup顶部) - 因此使其不太可读。

问:

我如何specifiy下面总是出现在前景中的XAML指定的myPopup画布,即最顶端,当用户查看它在鼠标悬停在Bing地图Silverlight控件。

谢谢!


<Grid x:Name="LayoutRoot" Background="White"> 
    <m:Map x:Name="GlobalMap" Mode="Road" Center="15,7" ZoomLevel="2" CredentialsProvider="{StaticResource MyCredentials}" Margin="-70,-40,-100,-72"> 

     <m:MapLayer x:Name="myLayer"> 
      <Canvas x:Name="myPopup" Visibility="Collapsed" Opacity="1"> 
       <Rectangle x:Name="myPopupRectangle" Fill="White" Canvas.Left="0" Canvas.Top="0" Height="100" 
          Width="100" RadiusX="15" RadiusY="15"/> 
       <StackPanel Canvas.Left="8" Canvas.Top="8"> 
        <TextBlock x:Name="myPopupTexts" FontSize="5" Width="100"> 
        </TextBlock> 

       </StackPanel> 
      </Canvas> 
     </m:MapLayer> 
    </m:Map> 
</Grid> 

回答

0

我做了一些与此类似,但采取了不同的方法。我所做的是创建一个自定义图钉模板并在模板中创建一个PopUp。

当用户将鼠标悬停在图钉上时,会显示弹出窗口。 使用PopUp可以解决您的问题,因为控制系统会自动将其置于之上。尝试将Canvas包装在PopPup中,看看是否可行。

心连心

+0

感谢您的回复。自定义图钉弹出窗口不能处理html标签(我将其作为Canvas的一部分显示)..以便选项不会满足我的需求。我希望画布上有一个属性,它总是显示在最前面/前景(在其他所有内容之上)。 – Simba 2010-11-29 02:55:08

1

尝试增加Canvas.ZIndexMapLayer元素,给它一个很大的值像200或者添加您的图钉到另一个MapLayer(而不是直接添加引脚映射)出现的这种超前按文档顺序弹出层。