c#用webkit内核支持html5,【原】C# Winform嵌入webkit内核浏览器

最近在做一个小工具,期间有个功能需要嵌入一个网页,自然而然地先用自带控件WebBrowser,结果运行一看,黑屏。经查证,原来该网页不支持所有版本的IE(哈哈,得多嫌弃IE啊),而WebBrowser并不支持其他内核,于是乎,只能改变思路,用第三方控件。接下来,就搜到了坑人的WebKit .NET项目(网上大部分的解决方案都是这坑货)。

为什么说它坑呢。

1.已经9年不维护,其内核版本极其老旧

2.引用方式不友好,需要复制一大坨文件到本地目录

ccd5c690689b

QQ截图20190309133550.png

主要是内核版本太久,导致我的网页依然黑屏。

无奈,继续翻页搜索引擎,终于让我遇上了CefSharp.WinForms,CefSharp.WinForms是一个第三方的控件库,可以通过nuget管理,极其方便。

nuget搜索CefSharp.WinForms即可安装

调用示例:

var browser = new CefSharp.WinForms.ChromiumWebBrowser();

browser .Dock = DockStyle.Fill;

this.panel.Controls.Add(Browser);

browser .AddressChanged += Browser_AddressChanged;

browser .Load("http://www.baidu.com");

使用注意事项,ChromiumWebBrowser控件的部分事件并不是在主线程回调的。以AddressChanged这个事件为例,如果需要操作其他控件,需要将调用封送到主线程调用。以下是示例代码:

private void Browser_AddressChanged(object sender, CefSharp.AddressChangedEventArgs e)

{

//OnAddressChanged是一个自定义的委托

this.Invoke(OnAddressChanged);

}

完美解决,可以正常显示。

相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值