【问题标题】:Add Silverlight Bing Maps Control to Windows Phone 7 application将 Silverlight Bing 地图控件添加到 Windows Phone 7 应用程序
【发布时间】:2010-03-15 21:57:45
【问题描述】:

我知道今天刚刚发布了这些位,但我想用 newly released Windows Phone 7 SDK 做的第一件事就是在屏幕上放一张地图,然后乱搞。

我已经下载了最新版本的Silverlight Maps Control 并将引用添加到我的应用程序中。事实上,VS 2010 的 MainPage.xaml 设计视图显示了添加命名空间并放置控件后的地图控件。

我正在使用随 Win Phone 7 SDK 提供的 VS 2010 Express 版本,并且刚刚使用了 New Project -> Windows Phone Application 模板。

当我尝试构建时,我收到两个与 Microsoft.Maps.MapControl dll 相关的警告。

警告 1 主要参考 “Microsoft.Maps.MapControl, 版本=1.0.1.0,文化=中性, PublicKeyToken=498d0d22d7936b73, 处理器架构 = MSIL”不能 被解决,因为它有一个间接的 对框架组件的依赖 “系统.Windows.浏览器, 版本=2.0.5.0,文化=中性, PublicKeyToken=7cec85d7bea7798e" 其中 目前无法解决 有针对性的框架。 “Silverlight,版本=v4.0,配置文件=WindowsPhone”。 要解决此问题,请删除 参考资料 “Microsoft.Maps.MapControl, 版本=1.0.1.0,文化=中性, PublicKeyToken=498d0d22d7936b73, 处理器架构=MSIL" 或 将您的应用程序重新定位到 包含的框架版本 “系统.Windows.浏览器, 版本=2.0.5.0,文化=中性, PublicKeyToken=7cec85d7bea7798e"。

警告 2 主要参考 “Microsoft.Maps.MapControl.Common, 版本=1.0.1.0,文化=中性, PublicKeyToken=498d0d22d7936b73, 处理器架构 = MSIL”不能 被解决,因为它有一个间接的 对框架组件的依赖 “系统.Windows.浏览器, 版本=2.0.5.0,文化=中性, PublicKeyToken=7cec85d7bea7798e" 其中 目前无法解决 有针对性的框架。 “Silverlight,版本=v4.0,配置文件=WindowsPhone”。 要解决此问题,请删除 参考资料 “Microsoft.Maps.MapControl.Common, 版本=1.0.1.0,文化=中性, PublicKeyToken=498d0d22d7936b73, 处理器架构=MSIL" 或 将您的应用程序重新定位到 包含的框架版本 “系统.Windows.浏览器, 版本=2.0.5.0,文化=中性, PublicKeyToken=7cec85d7bea7798e"。

我倾向于以某种方式将 System.Windows.Browser 添加到目标框架版本。但我什至不确定这是否可能。

更具体一点;我正在寻找一种在 Windows Phone 7 系列应用程序上安装 Silverlight Maps Control 的方法。如果可能的话。

谢谢。

【问题讨论】:

  • 您是否检查过您的项目以获取对 System.Windows.Browser, Version=2.0.5.0 的引用?
  • 没有可用于 System.Windows.Browser 的参考。我会尝试找到实际的 .dll 并引用它。

标签: silverlight windows-phone-7 bing-maps


【解决方案1】:

Windows Phone 不支持桌面 silverlight 的 Bing 地图控件。您可能想改用BingMapsTask

您看到错误是因为没有适用于 windows phone 的 System.Windows.Browser.dll 参考。如果您在 Visual Studio 2010 Express 中选中“添加引用”,则没有对 System.Windows.Browser.dll 的可用引用。

【讨论】:

  • 我正在尝试在我的应用程序中显示地图,而不是跳转到另一个应用程序 (BingMapsTask)。如果引用是问题,我可以找到 .dll 并直接引用它而不是依赖框架的版本来包含它吗?
  • 这是一个很大的“不”。用于手机的 SL 与用于桌面的 SL 不同,因此您不能只使用 destop SL 控件。即使您可以让它们在模拟器中渲染,它们也无法在真实硬件上运行。
  • 否,因为常规版本是针对桌面版本的 mscorlib 和其他程序集构建的。在手机上运行的代码是不一样的(尽管从类库的角度来看看起来很相似)
  • 它似乎确实有效。我刚刚引用了 System.Windows.Browser.dll 文件,现在项目构建并在模拟器中显示地图。
  • @ctacke 感谢您的无益且极具投机性的专家 cmets。当然,这很有可能在实际手机上不起作用。一方面,它们直到圣诞节前后才发布,另一方面,SDK 昨天发布了。与此同时,我的模拟器上有一张地图。
【解决方案2】:

如果您添加对 System.Windows.Browser.dll 的引用,通常位于“C:\Program Files\Microsoft Silverlight”中的版本目录之一(我的是在 C:\ Program Files\Microsoft Silverlight\3.0.50106.0),应用程序将构建,您将能够在运行时在模拟器中看到地图。

地图可以正常移动,但小导航球似乎偏离了角落。不知道这是怎么回事。

Silverlight Hack 也有一篇很好的关于让地图工作的文章

编辑

正如其他 cmets 所述。这可能不适用于真正的硬件。但由于真正的硬件要再过 6 个月才会出现,我认为能够在模拟器中得到一些东西总比没有好。

【讨论】:

    【解决方案3】:

    您也可以查看http://4square.codeplex.com/。它使用 Bing Maps API 直接下拉地图图像等,然后在 WP7 中使用它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-27
      • 2011-11-07
      • 2011-01-10
      • 1970-01-01
      相关资源
      最近更新 更多