Bing Maps控件 for WPF和Surface 2

简介:

背景

        之前我们在Surface2上使用Bing map的时候,不得不使用WebControl+Bing Maps Silverlight Control的方式来完成,现在微软终于发布了Bing Maps WPF Control。我们可以使用原生的Bing Maps控件了。

 

下载Bing Maps WPF Control

      请到http://www.microsoft.com/download/en/details.aspx?id=27165下载并安装

 

如何使用Bing Maps WPF Control

      下面演示如何在Surface2项目中使用Bing Maps WPF Control。

 

下载并安装Surface2 sdk

      如果没有安装Surface2 sdk,请在http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=26716进行下载安装。

创建Surface2项目

      创建一个Surface2的项目

image

 

引用Microsoft.Maps.MapControl.WPF.dll

      增加对Microsoft.Maps.MapControl.WPF.dll的引用,该DLL可能位于Program Files或者Program Files (x86)下,例如C:\Program Files (x86)\Bing Maps WPF Control\Beta\Libraries

image

 

增加XML命名空间

    在Xmal文件中增加对Microsoft.Maps.MapControl.WPF引用的命名空间

xmlns:m="clr-namespace:Microsoft.Maps.MapControl.WPF;assembly=Microsoft.Maps.MapControl.WPF"

 

增加Map标签

    在内容网格(content grid)上增加一个Map标签,如下所示

<s:SurfaceWindow x:Class="SurfaceApplicationBingMaps.SurfaceWindow1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:s="http://schemas.microsoft.com/surface/2008"
    xmlns:m="clr-namespace:Microsoft.Maps.MapControl.WPF;assembly=Microsoft.Maps.MapControl.WPF"
    Title="SurfaceApplicationBingMaps"
    >
  <Grid>
        <m:Map/>
    </Grid>
</s:SurfaceWindow>

 

     现在启动一下程序,我们已经看到Bing Map了。

image

 

     与其他Bing Maps控件一样,需要一个key把中间的版权信息去掉。这个key是免费申请的,可以参考我之前制作的视频。

MSDN webcast《Silverlight for Windows Phone开发》系列视频

Silverlight for Windows Phone 开发系列课程(15):Bing Maps控件

 

      把key放到CredentialsProvider

<m:Map  CredentialsProvider="请输入你的key" />

     如下所示,增加了key以后,中间的版权信息就消失了。

image

 

操控Bing Maps控件

      幸运的是操控Bing Maps控件的方式与Bing Maps WPF与Silverlight和Windows Phone版本的一样,详情可以参考我的视频Silverlight for Windows Phone 开发系列课程(15):Bing Maps控件,下面简单演示一下如何操控Bing Maps控件。

<m:Map  CredentialsProvider="请输入你的key"  Mode="AerialWithLabels" Center="37.806029,-122.407007" ZoomLevel="16" />

     在上面的Xmal中,我把地图的Mode(显示模式,一个为卫星图,公路图等),中心点和缩放大小进行了修改,效果如下所示:

image

广告时间,更多的操作请参考我之前制作的视频。

 

地图服务

地图服务主要支持根据经纬度查询地址,根据地址查询经纬度,根据起始点和终点计算路线等。Bing Maps WPF控件的地图服务与Silverlight和Windows Phone上使用的版本一样,因为都是同一个WCF服务,所以请参考我的视频,调用地图服务部分。

在Surface2上的演示

       实际上这个控件支持鼠标操作,例如滚动鼠标中间的转轮时会缩放地图。但是在Surface2上没有鼠标,平常我使用支持多点触碰的屏幕进行测试,但是如果没有多点触摸屏,我们也使用Surface2的sdk来模拟Pinch-to-Zoom(缩放)操作。下面讲述如何模拟该操作。

       首先启动Surface Input Simulator,如下图

       image

      后点击image按钮,这样鼠标操作就转变成touch操作了。首先在使用鼠标左键点击要放置手指的地方,手指变成红色,然后点击右键,手机会贴在该位置上,我存放了4个手指(模拟除大拇指以外的手指)在地图上,然后拖到第五个手指(模拟大拇指)来继续缩放,surface2支持42个手指同时操作。

image

 

演示到这里,随着Windows 8的发布(一起关注9月份的BUILD大会),基于触摸的程序会越来越流行,Surface sdk把WPF带入触摸的世界,大量地简化我们开发触摸设备的工作。


    本文转自Jake Lin博客园博客,原文链接:http://www.cnblogs.com/procoder/archive/2011/08/24/Bing-Maps-Control-for-WPF-and-Surface2.html,如需转载请自行联系原作者


相关文章
|
4月前
|
开发框架 缓存 前端开发
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
|
4月前
|
C# 开发者 Windows
一款基于Fluent设计风格、现代化的WPF UI控件库
一款基于Fluent设计风格、现代化的WPF UI控件库
112 1
|
4月前
|
C# Windows
WPF中如何使用HandyCotrol控件库
WPF中如何使用HandyCotrol控件库
207 1
|
4月前
|
C# 前端开发 UED
WPF数据验证实战:内置控件与自定义规则,带你玩转前端数据验证,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,数据验证是确保输入正确性的关键环节。前端验证能及时发现错误,提升用户体验和程序可靠性。本文对比了几种常用的WPF数据验证方法,并通过示例展示了如何使用内置验证控件(如`TextBox`)及自定义验证规则实现有效验证。内置控件结合`Validation`类可快速实现简单验证;自定义规则则提供了更灵活的复杂逻辑支持。希望本文能帮助开发者更好地进行WPF数据验证。
150 0
|
4月前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
82 0
|
4月前
|
开发框架 前端开发 JavaScript
WPF应用开发之控件动态内容展示
WPF应用开发之控件动态内容展示
|
4月前
|
开发框架 前端开发 JavaScript
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(3)--自定义用户控件
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(3)--自定义用户控件
|
4月前
|
前端开发 C#
wpfui:一个开源免费具有现代化设计趋势的WPF控件库
wpfui:一个开源免费具有现代化设计趋势的WPF控件库
164 0
|
4月前
|
开发框架 前端开发 C#
使用WPF开发自定义用户控件,以及实现相关自定义事件的处理
使用WPF开发自定义用户控件,以及实现相关自定义事件的处理
|
4月前
|
开发框架 前端开发 JavaScript
在WPF应用中使用GongSolutions.WPF.DragDrop实现列表集合控件的拖动处理
在WPF应用中使用GongSolutions.WPF.DragDrop实现列表集合控件的拖动处理