如何将 Bing 地图组件添加到我的 C# Winforms 应用程序?

B. *_*non 2 .net c# wpf bing-maps winforms

我已下载、安装并在我的 Winforms 应用程序中引用了 Bing Maps 控件:

在此输入图像描述

...我在 Form1.cs 中添加了以下内容:

using Microsoft.Maps.MapControl;
Run Code Online (Sandbox Code Playgroud)

...但我的工具箱中仍然没有 Bing 地图控件。

我意识到这是一个 WPF 控件,并且我正在使用 Winforms,但我的理解是 WPF 控件可以在 Winforms 应用程序中使用。

我的问题是:如何使 Bing 地图控件在工具箱中可见或在代码中创建 Bing 地图控件?

这可能并不重要,但地图控件的运行时版本是4.0.30319,版本= 1.0.0.0

Rez*_*aei 5

WPF 控件不会添加到 Windows 窗体工具箱,而是需要在 Windows 窗体项目中创建一个 WPF UserControl 并向其添加 WPF 映射,然后将 ElementHost Windows 窗体控件的实例拖放到窗体上并告诉主机显示您的 WPF 用户控件。

\n

示例 - Windows 窗体中的 WPF Bing 地图控件

\n
    \n
  1. 创建 Windows 窗体应用程序。

    \n
  2. \n
  3. 安装Microsoft.Maps.MapControl.WPF NuGet 包。

    \n
  4. \n
  5. 将新的WPF UserControl添加到您的项目中:

    \n

    右键单击项目 \xe2\x86\x92 选择添加新项\xe2\x86\x92 添加新的用户控件 (WPF)(位于 WPF 类别下)

    \n
  6. \n
  7. 将地图添加到您的 WPF 用户控件。基本上,您需要通过将以下属性添加到用户控件来将地图程序集添加到控件:

    \n
    xmlns:m="clr-namespace:Microsoft.Maps.MapControl.WPF;assembly=Microsoft.Maps.MapControl.WPF"\n
    Run Code Online (Sandbox Code Playgroud)\n

    并将地图元素添加到控件中:

    \n
    <Grid>\n  <m:Map/>\n</Grid>\n
    Run Code Online (Sandbox Code Playgroud)\n

    这是用户控件的完整代码。(确保使用正确的命名空间):

    \n
    <UserControl x:Class="YOURNAMESPACE.UserControl1"\n   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" \n   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" \n   xmlns:m="clr-namespace:Microsoft.Maps.MapControl.WPF;assembly=Microsoft.Maps.MapControl.WPF">\n   <Grid>\n       <m:Map CredentialsProvider="YOUR MAP KEY" x:Name="myMap" />\n   </Grid>\n</UserControl >\n
    Run Code Online (Sandbox Code Playgroud)\n

    \xe2\x80\xa2 注意:您需要 Bing 地图密钥。如果您没有 Bing 地图帐户,请创建一个 Bing 地图帐户,然后从中获取 Bing 地图密钥。出于测试目的,您可以忽略地图键。

    \n
  8. \n
  9. 构建您的项目。

    \n
  10. \n
  11. 将 ElementHost 控件的实例拖放到窗体上。您可以在工具箱的 WPF 互操作性组下找到它。

    \n
  12. \n
  13. 从智能操作面板(位于 ElementHost 控件的右上角),将托管内容设置为UserControl1并将其停靠到父容器。

    \n
  14. \n
  15. 运行您的应用程序。

    \n
  16. \n
\n

好了,地图将出现在您的 Windows 窗体应用程序中:

\n

在此输入图像描述

\n

更多信息:

\n

您可能需要查看以下链接以获取更多信息:

\n\n