C# cefSharep控件的使用详情
姚家湾 人气:0C# 有一个WebBrowse 控件,但是它是基于IE 的,对HTML5 不友好,为了能够完美地支持HTML5 ,需要使用Google的嵌入式Chrome引擎。cefsharp 包分装了Chome 引擎。下面的程序小试了一下。遇到的问题是如何访问本地文档。网络上介绍的方法有点过时了。
要能够访问本地文件需要下面的代码
// Allow the use of local resources in the browser BrowserSettings browserSettings = new BrowserSettings(); browserSettings.FileAccessFromFileUrls = CefState.Enabled; browserSettings.UniversalAccessFromFileUrls = CefState.Enabled; chromeBrowser.BrowserSettings = browserSettings;
但是新的cefsharp 的版本不支持FileAccessFromFileUrls和UniversalAccessFromFileUrls这两个属性了。网站上介绍使用命令 flag (--allow-universal-access-from-files)和(allow-file-access-from-files)。我尝试添加
settings.CefCommandLineArgs.Add("allow-universal-access-from-files","1"); settings.CefCommandLineArgs.Add("allow-file-access-from-files","1");
又在电脑中的Chrome 的属性中添加了这两个开关,突然就好了,而且去掉了上面的两条语句也可以了。不知道为什么。下面是可以运行的代码。供需要的的人参考
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using CefSharp; using CefSharp.WinForms; using System.IO; using System.Diagnostics; namespace WebkitTest { public partial class Form1 : Form { ChromiumWebBrowser CWebBrowser; public void InitializeChromium() { CefSettings settings = new CefSettings(); // settings.CefCommandLineArgs.Add("allow-universal-access-from-files","1"); // settings.CefCommandLineArgs.Add("allow-file-access-from-files","1"); Cef.Initialize(settings); // Create a browser component CWebBrowser = new ChromiumWebBrowser("File://E:/yao2022/HMI/views/index.html"); // Add it to the form and fill it to the form window. splitContainer1.Panel1.Controls.Add(CWebBrowser); CWebBrowser.Dock = DockStyle.Fill; // CWebBrowser.Load("File://E:/yao2022/HMI/views/index.html"); } public Form1() { InitializeComponent(); InitializeChromium(); } private void btn_Browse_Click(object sender, EventArgs e) { CWebBrowser.Load("www.baidu.com"); } private void btn_load_Click(object sender, EventArgs e) { CWebBrowser.Load(textBox1.Text); } } }
加载全部内容