C#自带的webbrowser内核是IE内核,即:Trident内核。但是不是很好用,但是日常工作还是可以用的。
在网上搜了好多改变内核的,后来发现WebKit.NET,但是开发者早已放弃维护和更新。
附上官网下载链接:
https://sourceforge.net/projects/webkitdotnet/files/WebKit%20.NET%200.x/0.5/WebKit.NET-0.5-bin-cairo.zip/download
附上百度云文件下载链接:
https://pan.baidu.com/s/1cDYVbey_t-AT_MTa3I6hwA 密码:ftqs
下载好文件后解压,找到WebKitBrowser.dll文件,将其拖拽到VS工具栏中,即可。不过不建议用,这个项目已经被放弃了。
后来又发现一个CefSharp,这个一直在更新,所以我打算用这个。
附上官网链接:
http://cefsharp.github.io/
附上项目github链接:
https://github.com/cefsharp/CefSharp
附上百度云文件下载链接:
https://pan.baidu.com/s/1pzaypc8d0X3Qdo2hB5d9Vg 密码:p4zn
或者通过VS的NuGet包下载安装,我使用的是VS17。
安装过程如下:
右击项目的引用,选择“管理NuGet程序包”。
在“浏览”搜索栏中搜索CefSharp,选择CefSharp.WinForms下载安装(我做的是winforms,若做的是Wpf,请安装CefSharp.Wpf),我安装过了,所以是更新。
安装好之后,会在项目下生成一个packages.config文件,里面是包的版本控制及Framework版本,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="cef.redist.x64" version="3.3239.1723" targetFramework="net461" />
<package id="cef.redist.x86" version="3.3239.1723" targetFramework="net461" />
<package id="CefSharp.Common" version="63.0.3" targetFramework="net461" />
<package id="CefSharp.WinForms" version="63.0.3" targetFramework="net461" />
</packages>
在项目目录下生成一个packages目录:
然后右击“引用”,选择“添加引用”。引用以下dll文件,下面是文件对应目录。
packages\CefSharp.WinForms.63.0.3\CefSharp\x86\CefSharp.WinForms.dll
packages\CefSharp.Common.63.0.3\CefSharp\x86\CefSharp.BrowserSubprocess.Core.dll
packages\CefSharp.Common.63.0.3\CefSharp\x86\CefSharp.Core.dll
packages\CefSharp.Common.63.0.3\CefSharp\x86\CefSharp.dll
,引用完之后,引用会出现感叹号,因为平台需要设置以下,我上述dll文件都是x86的,所以我这里需要配置一下项目运行平台。
右击项目,在生成中,平台目标选择X86:
配置完整个之后还需要配置一下活动平台,如下:
然后在此处可以选择X86了
此时,再看引用,已正常。然后进行测试。测试代码如下(请自行搭建测试项目):
使用代码:
public static ChromiumWebBrowser Url(string url)
{
ChromiumWebBrowser chromiumWebBrowser = new ChromiumWebBrowser("about:blank ");
chromiumWebBrowser.Load(url);
chromiumWebBrowser.Dock = DockStyle.Fill;
return chromiumWebBrowser;
}
我将其封装到一个函数里面,然后返回ChromiumWebBrowser对象。
调用代码:
string url = "https://blog.csdn.net/BangSong";
ChromiumWebBrowser chromiumWeb = CefSharpWebbrower.Url(url);
tabPanel.Controls.Add(chromiumWeb);
其中,tabPanel为一个面板控件,将webbrowser添加上去,即可。
测试结果: