c# 內嵌chrome (CEFSharp)首次
首先標記一個大坑!!!:
不管哪個版本,都需要在解決方案---配置管理器---平台---改為X86。否則一直打開是空白的窗口。坑了我一天都快炸了。
步驟一、創建一個winform應用程序。使用NuGet添加CefSharp。然后安裝完成后,完全關閉vs並重新打開。(智障)
cefsharp45及以上版本需要VC2013:https://www.microsoft.com/en-us/download/details.aspx?id=40784
步驟二、這個教程說可以配置anycpu。配anycpu需要解決方案屬性“首選32位”,改csproj和App.config文件。否則你看引用那一堆小嘆號。此方法棄用。既然不能很好的支持anyCpu,就別出方法坑人了= =。最后還需要配置管理器改成平台X86才行。辣雞。(但是nuget包下載后有個readme,第一條就是確保你設置了X86或X64.不會與anycpu一起工作。所以此攻略說的還是有毛病)
步驟二、在解決方案右鍵----“配置管理器”----平台---“X86”.(沒找到選項就新建一個)。即可!!
步驟三、
using CefSharp; using CefSharp.WinForms;
public ChromiumWebBrowser chromeBrowser; public void InitializeChromium() { CefSettings settings = new CefSettings(); // Initialize cef with the provided settings Cef.Initialize(settings); // Create a browser component chromeBrowser = new ChromiumWebBrowser("http://ourcodeworld.com"); // Add it to the form and fill it to the form window. this.Controls.Add(chromeBrowser); chromeBrowser.Dock = DockStyle.Fill; }
此處的settings實例化再Cef去初始。反正是默認的,可以Cef.Initialize();即可
public Form1() { InitializeComponent(); // Start the browser after initialize global component InitializeChromium(); }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { Cef.Shutdown(); }
邏輯:
一、在form構造函數里,初始化完全局組件后,建立一個初始化方法。
1、CefSetting實例化一個對象settings
2、用Cef去初始化settings。------------Cef.Initialize(settings);
3、實例化ChromiumWebBrower對象(參數是網址)
4、把對象加載到控件里。設為DockStyle.Fill
二、關閉窗體
Cef.Shutdown();
本文源碼項目地址:可fork。(第一個最有用的最簡單demo:)
https://gitee.com/HuLuMiaoMiao/FirstCefSharp.git
資料:
gitHub官方解答如何使用CefSharp!!!:
https://ourcodeworld.com/articles/read/173/how-to-use-cefsharp-chromium-embedded-framework-csharp-in-a-winforms-application
cef gitHub項目地址:
https://github.com/cefsharp/CefSharp
CefSharp.MinimalExample :包括WPF、WinForms等最簡單實現
git@github.com:hulumiaomiao/CefSharp.MinimalExample.git