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添加上去,即可。
測試結果: