zoukankan      html  css  js  c++  java
  • Bing Maps进阶系列七:Bing Maps功能导航菜单华丽的变身

       Bing Maps Silverlight Control所提供的功能导航是非常强大的,在设计上对扩展的支持非常好,提供了许多用户可扩展和直接使用的Command以及Button,不清楚的朋友可以查看我之前写的关于自定义功能导航条的文章《自定义功能导航条(Custom NavigationBar)》。但相比DeepEarth中提供的功能导航菜单没有那么粗大和动态效果,我个人而言比较喜欢DeepEarth中的功能导航菜单。首先看看Bing Maps默认的功能导航菜单:

             

      这些天收到不少询问关于在Bing Maps Silverlight Control进行Bing Maps开发中如何实现类似DeepEarth的功能导航菜单效果的邮件,在邮件里就回复了要实现DeepEarth效果的功能导航菜单是非常容易的, 我们不必费心费神的开发这样的控件,因为在最新版的DeepEarth对Bing Maps的扩展程序中已经提供了扩展Bing Maps的功能导航控件(NavigationPanel)。如下解决方案截图所示:

            

      如上示例解决方案截图,只需要将DeepEarth的源代码或发布的.dll程序集引用到项目中就可以使用其控件了。当然在使用之前还得做一个操作就是添加对控件的引用:

    xmlns:m="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"
    xmlns:dp="clr-namespace:DeepEarth.Client.Controls.DEMap;assembly=DeepEarth.Client.Controls.DEMap.NavigationPanel">

      DeepEarth所提供的功能导航菜单控件实际上就是对Bing Maps Silverlight Control的一个扩展,控件的使用与直接在DeepEarth中使用一样的,如果您还不曾使用过DeepEarth的功能导航菜单控件可以查阅《探索DeepEarth的内置控件》这篇文章里的详细介绍。在Bing Maps中使用的DeepEarth为Bing Maps扩展的NavigationPanel不同的是必须为其指定一个MapName属性,这个MapName属性的值也就是Bing Maps Silverlight Control的对象的Name,通过指定Bing Maps的Name的方式简介的给Bing Maps Silverlight Control附加出了一个DeepEarth的功能导航菜单效果,而原来Bing Maps Silverlight Control默认的导航菜单只需要将其设置为不显示(Collapsed)既可。如下代码块:

    <Grid x:Name="LayoutRoot" Width="500" Height="420">
        
    <m:Map x:Name="map" Margin="0,0,0,0" CredentialsProvider="{StaticResource MyCredentials}" 
               NavigationVisibility
    ="Collapsed">
        
    </m:Map>
        
    <dp:NavigationPanel x:Name="navPanel" MapName="map" Margin="4,4,4,4" 
                            HorizontalAlignment
    ="Left" 
                            VerticalAlignment
    ="Top">
            
    <StackPanel Orientation="Horizontal">
                
    <Button x:Name="btnBeiJing" Content="重庆" Width="60"
                        Style
    ="{StaticResource StandardButton}"  
                        Click
    ="btnChongQing_Click" 
                        Margin
    ="3,3,3,3"></Button>
            
    </StackPanel>
        
    </dp:NavigationPanel>
    </Grid>

      如上功能导航菜单里布局了一个按钮,该按钮实现了将地图动态定位导航到重庆地区的地区区域,定位代码非常简单,直接设置地图的中心点就OK了。如下代码块:

    private void btnChongQing_Click(object sender, RoutedEventArgs e)
    {
        map.Center 
    = new Microsoft.Maps.MapControl.Location(29.5076372217973106.489384971208);
        map.ZoomLevel 
    = 10;
    }

            

    版权说明

      本文属原创文章,欢迎转载且注明文章出处,其版权归作者和博客园共有。  

      作      者:Beniao                                微软Bing Maps开发群:75662563

     文章出处:http://beniao.cnblogs.com/  或  http://www.cnblogs.com/

  • 相关阅读:
    RabbitMQ学习笔记
    Eclipse下JRebel的安装和基本使用
    通过HTTP响应头让浏览器自动刷新
    CentOS6.5安装Jenkins
    Windows快捷操作技巧
    关于代码压缩混淆加密整理;
    一款优雅的小程序拖拽排序组件实现
    记一次 Mac CA证书 问题
    微信小程序-Swiper和下拉刷新组件
    WeUI Picker组件 源代码分析
  • 原文地址:https://www.cnblogs.com/beniao/p/1687576.html
Copyright © 2011-2022 走看看