2009-12-22 63 views

回答

7

你不行。

WebBrowser控件是IE ActiveX控件的一个包装,无法轻松交换到Mozilla。

但是,你可以看看到Mozilla ActiveX Control

+1

使用ActiveX控件将是一个痛苦的过程。有人已经创建了一个托管封装:http://code.google.com/p/geckofx/ – jasonh 2009-12-22 22:20:41

+0

但它不适用于Mozilla Firefox版本23 – 2013-12-20 08:05:23

1

不知道这是否可能/简单,但mono使用Gecko#来实现它的System.Windows.Forms.WebBrowser版本。也许你可以重用它,或者从代码中剥离一些可用的部分?

3

我只是在看GeckoFXWebKit.NET他们可能是你的兴趣。如果你想改变Default WebBrowser控件,我不相信这是可能的。

2

System.Windows.Forms.WebBrowser仅仅是ActiveX控件的托管包装:SHDocVw.WebBrowser。包装不是没有缺陷,可能无法提供您需要的可扩展性。如果你有一个工作解决方案,我不建议将它移植到使用System.Windows.Forms.WebBrowser

IE不基于.Net,因此您不能使用System.Windows.Forms.WebBrowser来控制IE中的任何内容。实际上,我甚至不建议在.Net中连接BHO,因为只有一个版本的CLR可以在IE进程中运行,并且您的BHO可以运行在意外的CLR版本上。

0

更新2016年

有3个额外的选项我可以建议仍在积极开发:

1. BrowseEmAll.Cef

可用于整合 的Chrome引擎

.NET组件到您的.Net应用程序中。基于CefGlue,但在更新最新的Chrome版本时速度稍快。另外还有一个商业支持选项可用,这可能会派上用场。当然,组件本身是开源

2. BrowseEmAll.Gecko

可以用来给火狐引擎集成到您的.NET应用的另一个.NET组件。这是基于Geckofx,但与当前版本的Geckofx不同,这将与Firefox的正常版本构建一起使用。要使用Geckofx,您需要自己构建Firefox。再次商业支持是可用的,但组件本身完全是开源

3. BrowseEmAll Core API

需要在.NET应用程序的所有不同的浏览器?您可以使用BrowseEmAll Core API 将Chrome,Firefox,Webkit和Internet Explorer集成到您的应用程序中。这是一个商业产品虽然如此被警告。

(全面披露:我为这个公司工作,所以采取一切我半信半疑的说)