【问题标题】:Is it possible to use GMap.Net Windows Form dll in WPF?是否可以在 WPF 中使用 GMap.Net Windows Form dll?
【发布时间】:2019-01-31 00:22:26
【问题描述】:

我想在我的 WPF 项目中使用 GMap.net。 不幸的是,我找不到在 WPF 中使用 GMap.net 的任何好的参考,例如 this source 用于 windows 窗体,对于每个部分,我必须进行大量搜索才能使用它。 我的第一个问题是关于如何在 WPF 中使用 GMap.net 有什么好的资源吗? 我的第二个问题是,我看到有人告诉我在 WPF 中使用了 GMap.NET.WindowsForms.dll 而不是 GMap.NET.WindowsPresentation.dll。可能吗?如果是,如何? 我将 GMap.NET.WindowsForms.dll 、GMap.NET.Core.dll 和 System.Windows.Forms 添加到我的项目中,并将以下代码添加到 Window_Loaded 事件中,但项目运行时没有地图:

        GMap.NET.WindowsForms.GMapControl gmap = new GMap.NET.WindowsForms.GMapControl();
        gmap.MapProvider = GMap.NET.MapProviders.GoogleMapProvider.Instance;
        GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;
        gmap.Position = new GMap.NET.PointLatLng(48.8589507, 2.2775175);
        gmap.Width = 500;
        gmap.Height = 500;
        gmap.Zoom = 13;
        gmap.ShowCenter = false;

【问题讨论】:

    标签: wpf gmap.net


    【解决方案1】:

    我没有找到任何特定于在 WPF 中使用 GMap 的文档,尽管我看起来不是很努力。无论如何,api非常相似。将 NuGet pkg GMap.NET.Presentation 添加到项目中后,您显示的代码只需稍作修改:

    GMap.NET.WindowsPresentation.GMapControl gmap = new GMap.NET.WindowsPresentation.GMapControl ();
    gmap.MapProvider = GMap.NET.MapProviders.GoogleMapProvider.Instance;
    GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;
    gmap.Position = new GMap.NET.PointLatLng (48.8589507, 2.2775175);
    gmap.Width = 500;
    gmap.Height = 500;
    gmap.Zoom = 13;
    gmap.ShowCenter = false;
    
    mainGrid.Children.Add (gmap);
    Grid.SetColumn (gmap, 1);
    gmap.Margin = new Thickness (10, 200, 10, 10);
    

    最后 3 行假设您将其放入 Grid 控件中。更改它们以匹配您正在使用的内容。

    至于您剩下的 2 个问题...是的,可以在 WPF 应用程序中使用 Winforms 版本。虽然我不得不问为什么因为它变得有点复杂和有限?但是,如果必须,您的代码大部分都很好。您需要将WindowsFormsHost 控件添加到您的WPF 窗口以承载winforms GMap 控件。 XAML 将是这样的:

    <WindowsFormsHost x:Name="wfHost" Margin="10,160,10,10"/>
    

    然后在您的代码中,设置好 gmap 控件后,添加:

    wfHost.Child = gmap;
    

    它应该可以工作。

    我认为您不会做的一件事是同时使用 GMap 库的 WPF 和 Winforms 版本。我在尝试时遇到了很多冲突和错误...

    【讨论】:

    • 谢谢亲爱的 Jeff R。添加 帮助我在我的 wpf 项目中使用 windows 窗体 dll。
    猜你喜欢
    • 1970-01-01
    • 2021-03-25
    • 2014-06-08
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多