如何将地图控件添加到 Windows Phone 8 中的页面中
2012/12/11
适用于:仅限于 Windows Phone 8。
本主题描述向 Windows Phone 8 项目添加 Map 控件的各种方法。Map 控件属于 Windows Phone SDK 8.0 中库的一部分。由于 Map 控件不是内存中的核心控件,因此必须先正确引用它,然后才能使用它。在将控件添加到项目之前,您还必须添加 ID_Cap_Map 功能。
本主题包含以下各节。
您必须在添加 Map 控件之前添加 ID_Cap_Map 功能。
添加 ID_Cap_Map 功能
-
在 Visual Studio 2012 中,创建一个名为 MapApplication 的新的 Windows Phone 8 项目。
-
在 MapApplication 项目中,单击“属性”文件夹,然后双击“WMAppManifest.xml”文件。
-
在“WMAppManifest.xml”文件中,单击“功能”选项卡。
-
在“功能”表中,选择“ID_Cap_Map”功能。
若要添加 Map 控件并正确引用它,最简单的方法是将它从“工具箱”拖放到 XAML 设计器或 XAML 视图中。
从工具箱添加地图控件
-
在 MapApplication 项目中,打开“工具箱”,然后打开“所有 Windows Phone 控件”。
-
将 Map 控件从“工具箱”拖到 XAML 或设计器视图中。
Visual Studio 会自动执行以下任务。
-
添加对 Microsoft.Phone.Maps 程序集的引用。
-
在 XAML 页的 <phone:PhoneApplicationPage> 开始标记中,添加以下针对 SDK 命名空间的 XAML 命名空间声明。
xmlns:Controls="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"
-
如果您将控件拖到 XAML 视图中,则将以下 XAML 添加到您的页中。
<Controls:Map />
- 或 -
-
如果您将控件拖到设计视图中,则添加以下 XAML。
<Controls:Map HorizontalAlignment="Left" Margin="158,265,0,0" VerticalAlignment="Top"/>
-
若要使用 XAML 手动添加 Map 控件,您必须首先添加对 Microsoft.Phone.Maps 程序集的引用,然后您必须将一个 XML 命名空间映射到程序集。
在 Visual Studio 中添加对 Microsoft.Phone.Maps 程序集的引用
-
在 MapApplication 项目中,单击“项目”菜单,然后选择“添加引用”。
-
在“引用管理器”对话框中,单击“浏览”。
-
浏览至 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0。
-
双击 Microsoft.Phone.Maps.dll 文件。
-
单击“确定”。
添加 XML 命名空间映射
-
打开 MainPage.xaml。
-
在 XAML 页的 <phone:PhoneApplicationPage> 开始标记中,添加以下针对 SDK 命名空间的 XAML 命名空间声明。
xmlns:Controls="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"
使用 XAML 添加地图控件
-
打开 Mainpage.xaml。
-
将下列 XAML 添加到 ContentPanel 网格。
<Controls:Map></Controls:Map>
您必须先从 Windows Phone 开发人员中心 中获取 ApplicationId 和 AuthenticationToken,并且将值添加进您的代码,才能发布使用地图控件的应用。您获取的值特定于您为之发出请求的单个应用。
从 开发人员中心 中获取 ApplicationID 和 AuthenticationToken 的步骤
-
当您完成您的应用之后,即可开始应用的提交过程。
-
在“提交应用”页面上,点击“地图服务”。
“地图服务”页面打开。
-
在 页面上,单击“获取标记”。
新的 ApplicationID 和 AuthenticationToken 显示在同一页面上。
-
将值复制并粘贴进您的代码中,如下所示。
-
用新代码重建您的应用,然后将更新后的副本上载至 商店。
在第一个地图控件加载(不仅仅是实例化)之后,您必须设置 ApplicationId 和 AuthenticationToken 属性的值。如果您销毁应用中地图控件的所有实例,然后创建新的实例,那么您必须再次设置这些属性。
在您的代码中指定 ApplicationID 和 AuthenticationToken 的步骤
-
在 Visual Studio 您的代码中,创建地图控件的加载事件的事件处理程序。
-
复制您从 开发人员中心 中获取的每一个值,将它们分配至各自的属性,如以下代码所示:
private void myMapControl_Loaded(object sender, RoutedEventArgs e) { Microsoft.Phone.Maps.MapsSettings.ApplicationContext.ApplicationId = "ApplicationID"; Microsoft.Phone.Maps.MapsSettings.ApplicationContext.AuthenticationToken = "AuthenticationToken"; }