使用WPF / C#嵌入Chromium而不是IE WebBrowser控件的选项?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (293)

基于Internet Explorer的WPF WebBrowser控件受到一些键盘和焦点问题以及内存泄漏问题的困扰。作为这些问题的替代解决方案,我们正在考虑在基于HTML编辑的WPF / C#项目中托管Chromium而不是WebBrowser控件的可用选项。类似的问题已经被问这里以前。我已经阅读了答案并完成了自己的研究,但是我希望能够从生产质量项目中实际使用以下任何选项的人那里获得更多反馈

AwesomiumAwesomium.NET

它看起来非常合适,但我不喜欢这个项目不是开源的,而且完整的源代码不易获得。另外,对我们的项目来说这可能是一种矫枉过正,因为离屏渲染并不是我们真正依赖的。

Chromium嵌入式框架(CEF)CEF的.NET绑定

这可能是目前可用的最佳选择。该项目似乎活跃并且活跃,目前与Chrome v27同步。CEF3使用Chrome多进程架构。它也看起来像Adobe给它一些认可。

Google的Chrome框架

虽然它的最初目的是成为IE和Firefox的HTML5插件,但它实际上也可以作为独立的ActiveX控件工作,所以我可以将它包装起来以便与WPF一起使用。它公开了一个足够的API来与内部网页(onmessage, addEventListener/removeEventListener, postMessage)进行交互。我知道谷歌将停止 Chrome框架,但我认为这些源代码将保留在Chromium存储库中。在我们去的时候用最新的Chromium代码来更新它并不困难,我们可以完全控制它。

WebKit .NET包装

不完全基于铬,不使用V8引擎,所以它不是一个真正的选择。

有没有其他的选择我可能忽略了?

如果有人将他/他的经验与上述任何选项一起分享给现实生产质量的WPF项目,我将不胜感激。您是否有任何集成,许可或部署影响?谢谢。

提问于
用户回答回答于

你已经列出了嵌入Chromium(CEF,Chrome Frame,Awesomium)最显着的解决方案。没有更多的项目是重要的。

还有Berkelium项目,但它还包含旧版本的Chromium。

CEF是你最好的选择 - 它是完全开源的,并且经常更新。它是唯一允许嵌入最新版本Chromium的选项。现在Per Lundberg正在积极将CEF 3移植到CefSharp,这是未来的最佳选择。还有Xilium.CefGlue,但是这个为CEF提供了一个低级API,它绑定了CEF的C API。另一方面,CefSharp绑定到CEF的C ++ API。

用户回答回答于

前段时间我们有着完全相同的挑战。我们想要使用基于WPF并支持.NET 3.5的CEF3开源库。

我们继续开源.NET CEF3绑定,这个绑定被称为Xilium.CefGlue,并且取得了很好的成功。如果某些内容不能像您期望的那样工作,作者通常会对内置bitbucket跟踪器中打开的问题做出快速响应

到目前为止,它为我们提供了很好的服 作者更新他的库以支持最新的CEF3版本和常规基础上的错误修复。

扫码关注云+社区