2020年更新 ,我有 链接我的文章,在那里我比较了在基本的 Windows 桌面应用程序中托管 HTML WebView 的不同方法的内存占用情况:
基于 InternetExplorer 的 WPFWebBrowser 控件受到一些 键盘和焦点问题和 内存泄漏问题的影响。作为这些问题的替代解决方案,我们正在考虑在基于 HTML 编辑的 WPF/C # 项目中托管 Chromium 而不是 WebBrowser 控件的可用选项。类似的问题以前也有过 问道。我已经阅读了答案并且做了自己的研究,但我希望从那些在生产质量项目中实际使用过以下选项的人那里获得更多的反馈:
它看起来非常合适,但是我不喜欢这个项目不是开源的,而且完整的源代码也不容易获得。另外,对于我们的项目来说,这可能是一种过度消耗,因为离屏渲染并不是我们真正依赖的东西。
Chromium 嵌入式框架(CEF) 和 < a href = “ https://github.com/cefSharp/CefSharp”rel = “ noReferrer”> . NET 绑定用于 CEF
这可能是目前最好的选择。该项目似乎是活跃的,目前与 Chrome v27同步。CEF3使用 Chrome 多进程架构。看起来 Adobe 也给了它 一些背书。
虽然它最初的目的是为 IE 和 Firefox 提供一个 HTML5插件,但实际上它也可以作为独立的 ActiveX 控件工作,所以我可以把它包装起来以便与 WPF 一起使用。它为与内部网页(onmessage, addEventListener/removeEventListener, postMessage
)的交互公开了一个 空气污染指数足够。
我知道谷歌是对 停止 Chrome 帧,但我认为源代码将保留在 Chromium 存储库。随着我们的进展,用最新的 Chromium 代码来更新它应该不会很困难,而且我们可以完全控制这一点。
不完全基于 Chromium,也不使用 V8引擎,所以它不是一个真正的选项。
还有什么我没注意到的选择吗?
如果有人分享她/他的经验与任何上述选项的现实生活中,生产质量的 WPF 项目,我将非常感激。您是否有任何集成、许可或部署方面的影响?