c# .net 第二讲:winform项目引入谷歌浏览器

在这里插入图片描述

一、利用CefSharp调用谷歌浏览器内核ChromiumWebBrowser 参考1

CefSharp项目url: https://github.com/cefsharp/CefSharp

  1. 环境准备
    • 创建WinForm程序:需要注意要使用.NetFrameWork4.5.2以上版本。
    • 设置目标平台:在解决方案上右键 - 属性 - 生成 - 目标平台,选择x86或x64,因为Cef暂不支持AnyCPU。如果平台里没有x86,可以在生成 - 配置管理器中的平台进行新建平台。需要注意如果新建平台,debug目录会生成新建平台的文件夹,要注意文件的存放位置。
  2. 引用相关DLL
    • 下载并解压CefSharp编译好的文件(注意区分32位还是64位,如for32 - bitapps)。
    • 项目右键添加引用,添加以下dll:CefSharp.dll、CefSharp.Core.dll、CefSharp.WinForms.dll。
  3. 编写测试代码
    • 在InitializeComponent()方法中调用InitBrowser(),之后就可以F5调试运行。

二、WinForm嵌入谷歌地图(涉及到与js双向通信等)参考2

  1. 准备工作
    • 创建winform程序,使用.NET4.5.2或以上(例如vs2017,因为vs2010最高支持.NET4.0)。
    • 在解决方案上右键 - 属性 - 生成 - 目标平台,选择x86或x64(类似CefSharp的要求,Cef暂不支持AnyC…)。
  2. 获取谷歌地图相关代码
    • 参考谷歌地图的api编写html代码,例如:
      • 初始化地图部分代码,像设置地图的中心位置(center)、放大倍数(zoom)、地图类型(mapTypeId)等参数。
      • 在与WinForm交互部分,如通过window.external方法从前台winform中获得输入的坐标,实现双向通信。
  3. 在WinForm中嵌入
    • 将相关的html代码与WinForm进行结合,实现谷歌地图在WinForm中的嵌入以及相关功能(如定位、根据两点连接路径等功能)。

三、简单嵌入谷歌ChromiumWebBrowser到WinForm 参考3

  1. InitializeComponent();之后

    • 创建ChromiumWebBrowser对象,例如ChromiumWebBrowser webview = new ChromiumWebBrowser(url);,这里的url是要显示的网页地址。
    • 设置相关属性,如webview.Dock = DockStyle.Fill;,然后将其添加到WinForm的控件中,this.Controls.Add(webview);
    • 还可以设置一些其他的属性,如webview.KeyboardHandler = new CEFKeyBoardHander();(这里的CEFKeyBoardHander是自定义的处理键盘事件的类等情况)。