【问题标题】:.net WP8.1/Win10 UWP: Namespace for MapControl not found in Visual Studio Designer.net WP8.1/Win10 UWP:在 Visual Studio 设计器中找不到 MapControl 的命名空间
【发布时间】:2015-07-21 08:41:12
【问题描述】:

编辑:使用 MapControl 时,Win 10 UWP 应用程序(VS2015、Win10)也会出现以下描述的问题。

我在 Windows Phone 8.1(通用应用程序)应用程序中使用 MapControl 时遇到了一个奇怪的问题。将控件添加到页面后,Visual Studio 说The name "MapControl" does not exist in the namespace "using:Windows.UI.Xaml.Controls.Maps". 构建应用程序有效,我可以将其部署到手机并显示地图,一切都很好 - 但我不能再使用此页面的设计器,因为它声称那个错误。

问题出现在一个更大的项目中,该项目最初是在 Windows 8.1 上的 VS2013(更新 4)中启动的。我的第一个想法是我的 VS 安装有点坏了。但是在全新安装 Windows 10 (10240) 和 VS2015 RTM 之后,问题也出现了。我的重现步骤非常简单:

  • 从模板“Blank App (Universal Windows 8.1)”创建一个新项目
  • 打开WindowsPhone子项目的MainPage.xaml
  • 双击工具箱中的MapControl
  • 请注意,MapControl 已添加到 xaml 中的 Grid 中,并以并排设计视图显示。一切似乎都很好。
  • 我现在只需单击工具箱即可向页面添加更多控件。我可以在设计器中用鼠标修改页面上的控件(例如重新排列它们),我可以通过属性窗格更改它们的属性。一切都还好。
  • 但是,当我在设计器中关闭并重新打开该页面(或整个项目)时,或者当我开始直接使用键盘编辑 xaml 时,设计器会失败并声明上述错误。

这里有什么问题?如何让 Visual Studio 设计器再次使用 MapControls 处理页面?首先,我想到了 VS2013 中的一个错误——但是复制起来很简单,在 VS2015 中没有修复,并且在互联网上没有关于它的信息?我做错了什么?

【问题讨论】:

  • 即使在 Windows 10、VS2015 RC 上使用 UWP 项目,我也遇到了同样的错误。
  • 同样的错误,但看起来它不会影响将应用程序部署到商店。
  • 不,它不会影响部署。但是当地图是您应用中的中心 ui 元素时,您必须在没有视觉设计器的情况下开发整个应用,这使得开发变得更加困难。

标签: visual-studio-2013 windows-phone-8.1 winrt-xaml win-universal-app visual-studio-2015


【解决方案1】:

Visual Studio Tools for Universal Windows Apps 1.0 中存在导致地图出现此问题的错误,安装此更新应该可以解决问题 Update

正确使用地图sdk的步骤

Windows 8.1

  1. 转到工具-> 扩展和更新-> 安装必应地图 SDK。
  2. 右键项目->添加引用->Windows->扩展->必应地图
  3. 将配置设置为 x86(配置属性 -> 配置)
  4. 使用xmlns:maps="using:Bing.Maps"将地图引用添加到您的页面
  5. 将此行添加到您的 xaml <maps:Map />

现在你可以走了

Windows Phone 和 Windows 10 UAP

在您的 xaml 中添加此引用

xmlns:maps="using:Windows.UI.Xaml.Controls.Maps"

然后将此行添加到您的 xaml

<maps:MapControl />

【讨论】:

  • 您的程序只是 x86 windows 8.1 的解决方法,并且似乎不适用于我在问题中提出的 wp8.1 或 wp10 通用 windows 平台。必应地图 SDK 扩展仅适用于 Windows 8.1 应用商店应用。它似乎是一个不同的 API。我想知道如何让这个 API 工作:msdn.microsoft.com/en-us/library/windows/apps/xaml/…github.com/Microsoft/Windows-universal-samples/tree/master/…
  • 在一个适用于 windows 8.1 的通用应用程序中,您有一个适用于 WP8.1 的项目和一个适用于 windows 8.1 的项目,我编写的程序解释了如何在 2 个不同的项目中使用地图,因为您需要的 SDK 不同用于显示地图的 2 个不同视图,每个项目一个。如果您的项目以 Win10 UAP 为目标,您只需要我的答案中的 windows phone 部分,您不需要 sdk,因为 sdk 已经包含在内。
  • 看我提供的截图。你为Win10建议的两行正是我写的。问题不在于根本找不到 MapControl。它被发现,它可以通过工具箱添加,它在设计器中可见并且在运行时工作。但是:它仅在第一次手动编辑 XAML 文件之前有效。之后,Designer 似乎被破坏并声称找不到命名空间。此时它在运行时仍然有效,但不再在 Designer 中。看来我不是唯一一个遇到这个问题的人,所以我想知道,是否有解决方法/解决方法。
  • Visual Studio 上存在导致地图问题的错误,安装此更新应该可以解决问题social.msdn.microsoft.com/Forums/en-US/…
  • 确实,这次更新解决了这个问题。您可以再次编辑您的答案并将相关信息放在开头吗?也许还有更多信息?如前所述,您提供的第一个信息不是我要求的。但是因为你比 Justin XL 更早地发布了链接,如果它会有所改进,我会给你的答案绿色检查
【解决方案2】:

【讨论】:

  • 不幸的是,这并不能解决我的问题。使用 MapControl 时,现在在 win 10 UWP 项目中也会出现同样的问题。您提供的链接指向一个标记为“重复”的错误,但没有任何信息可以找到重复的票证。没有信息何时修复。很郁闷...
【解决方案3】:

制作正确的地图库参考

xmlns:Maps="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"

代替

xmlns:Maps="using:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"

【讨论】:

  • 我说的是用于 wp8.1/win8.1 或 win 10 的 .net 通用应用程序。我要求提供命名空间 Windows.UI.Xaml.Controls.Maps 而不是 Microsoft.Phone .Maps.Controls。请仔细阅读我的问题。如果我要解决 wp8.1,则 using 语法将不起作用,但这会导致不同的异常。更多信息可以在这里找到:stackoverflow.com/questions/16406038/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 2011-03-15
  • 2019-08-01
相关资源
最近更新 更多