嵌入,而不是与WPF / C#IE浏览器控件铬选项 [英] Options for embedding Chromium instead of IE WebBrowser control with WPF/C#

查看:977
本文介绍了嵌入,而不是与WPF / C#IE浏览器控件铬选项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

互联网WPF WebBrowser控件一些患有<一个href=\"http://stackoverflow.com/questions/18256886/webbrowser-control-keyboard-and-focus-behavior\">keyboard和焦点问题和<一个href=\"http://stackoverflow.com/questions/8302933/how-to-get-around-the-memory-leak-in-the-net-webbrowser-control\">memory泄漏问题。作为一种替代解决这些问题,我们正在考虑举办,而不是在我们根据各地的HTML编辑WPF / C#项目WebBrowser控件铬可用选项。类似的问题已经<一个href=\"http://stackoverflow.com/questions/790542/replacing-net-webbrowser-control-with-a-better-browser-like-chrome\">asked这里previously。我读过的答案,做我自己的研究,但我希望获得谁在生产质量项目实际使用下列任何选项的人更多一些反馈

Internet Explorer-based WPF WebBrowser control suffers from some keyboard and focus issues and memory leak issues. As an alternative solution to these problems, we're considering available options for hosting Chromium instead of WebBrowser control in our WPF/C# project based around HTML editing. Similar questions have been asked here previously. I've read the answers and done my own research, but I hope to obtain some more feedback from people who have actually used any of the following options in production-quality projects:

Awesomium Awesomium.NET

这看起来很合适,但我不喜欢的是这个项目是不是开源的,完整的源代码是不容易得到。此外,它可能是我们的项目的矫枉过正,因为离屏渲染是不是我们真正依靠。

It looks very appropriate, but I don't like the fact the project is not open-source and the full source is not easily available. Also, it might be an overkill for our project, as off-screen rendering is not something we really depend on.

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

这可能是最好的选择目前可用。该项目似乎是活着,活跃在使用Chrome V27同步是目前。 CEF3使用Chrome的多进程架构。它也像Adobe正在给它一些代言

This is probably the best option currently available. The project seems to be alive and active, being currently in sync with Chrome v27. CEF3 uses Chrome multi-process architecture. It also looks like Adobe is giving it some endorsement.

谷歌的Chrome框架

虽然它的初衷是成为一个HTML5插件IE和Firefox,它实际上可以作为独立的ActiveX控件也一样,所以我可以把它包起来与WPF使用。它暴露互动与内网页的足够的API 的onMessage,的addEventListener / removeEventListener,postMessage的)。
我知道谷歌是停止 Chrome Frame的,但我相信源将保持在Chromium库。它不应该是很难与最新的Chromium code更新它,因为我们去,我们将不得不在这个完全控制。

While the original purpose of it was to be an HTML5 plugin for IE and Firefox, it actually works as standalone ActiveX control too, so I could wrap it for use with WPF. It exposes a sufficient API for interaction with the inner web page (onmessage, addEventListener/removeEventListener, postMessage). I'm aware Google is to discontinue Chrome Frame, but I assume the sources will remain in Chromium repository. It should not be difficult to update it with the latest Chromium code as we go, and we would have full control over this.

WebKit的.NET包装

不完全是铬基和不使用V8发动机,所以它不是一个真正的选择。

Not exactly Chromium-based and doesn't use V8 engine, so it is not really an option.

有可能我忽略了任何其他的选择吗?

Is there any other option I might have overlooked?

我将不胜AP preciate如果有人分享他/她与任何一个真正的生活,生产质量的WPF项目上述选项的经验。你有任何集成,许可或部署的影响?谢谢你。


我也想感谢 artlung 通过提供慷慨的奖金给提供这个问题的推动。

I'd also like to thank artlung for giving this question a boost by providing a generous bounty offer.

推荐答案

您已经列出的最显着的解决方案嵌入铬(CEF,Chrome Frame的,Awesomium)。有没有任何关系更多的项目。

You've already listed the most notable solutions for embedding Chromium (CEF, Chrome Frame, Awesomium). There aren't any more projects that matter.

有仍然是项目(见的锫夏普锫管理),但它emebeds旧版本的Chromium。

There is still the Berkelium project (see Berkelium Sharp and Berkelium Managed), but it emebeds an old version of Chromium.

CEF 是你最好的选择 - 这是完全开源的,并经常更新。它是使您可以嵌入最新版本的Chromium的唯一选择。现在,每伦德伯格正在积极CEF移植3至 CefSharp ,这是未来的最佳选择。另外也 Xilium.CefGlue ,但是这一次提供了CEF低水平的API,它结合到CEF的C API。 CefSharp,另一方面结合CEF的C ++ API。

CEF is your best bet - it's fully open source and frequently updated. It's the only option that allows you to embed the latest version of Chromium. Now that Per Lundberg is actively working on porting CEF 3 to CefSharp, this is the best option for the future. There is also Xilium.CefGlue, but this one provides a low level API for CEF, it binds to the C API of CEF. CefSharp on the other hand binds to the C++ API of CEF.

Adob​​e是不使用CEF是唯一的主要球员,看其他显着的应用程序中使用的 CEF维基页面 CEF

Adobe is not the only major player using CEF, see other notable applications using CEF on the CEF wikipedia page.

框架是没有意义的,因为该项目已经的退休

Updating Chrome Frame is pointless since the project has been retired.

这篇关于嵌入,而不是与WPF / C#IE浏览器控件铬选项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆