关于c#:是否可以像WebView一样将Gecko或Webkit嵌入Windows窗体中?

关于c#:是否可以像WebView一样将Gecko或Webkit嵌入Windows窗体中?

Is it possible to Embed Gecko or Webkit in a Windows Form just like a WebView?

我很想知道是否有Gecko.NET之类的东西;)我的意思是,就像我们可以嵌入WebView一样,这就是IE7在所有Windows Forms应用程序中的"实例"(并将其告诉)。我很想使用Firefox或WebKit。

有人尝试过吗?

更新:请记住,尽管可以使用上述控件嵌入Gecko,但是在使用Gecko时仍然无法打印。

2010年3月更新:仍然无法使用GeckoFX进行本机打印,但是根据您要执行的操作,有两种方法可能就足够了。
有关更多信息,请参见:http://geckofx.org/viewtopic.php?id=796。

2013年10月更新:我不再从事Windows开发,因此对此我没有兴趣,但是似乎可以在以下位置找到Gecko的开发:https://bitbucket.org/geckofx,并且它似乎是最近更新的。留给以后的Windows开发人员使用;)

2017年1月更新:我收到了来自TeamDev公司的电子邮件。他们创建了一个基于Chromium的.NET浏览器组件,称为" DotNetBrowser",该组件可用于在Windows Forms应用程序中显示现代网页。

直接引用电子邮件:

Here are some details about the component, which might be helpful:

  • DotNetBrowser基于Chromium,因此支持HTML5,CSS3,JS和最新的Web标准。库的基础Chromium版本会定期更新。
  • 该组件适用于WPF和Windows Forms桌面应用程序,并且适用于C#和VB.NET。
  • 该图书馆已获得商业许可,但是为开源和学术项目提供了免费许可。
  • 免责声明:我没有使用过该DotNetBrowser,因为我不再进行Windows开发,但是如果您正在寻找解决方案,可能值得检查。


    http://code.google.com/p/geckofx/

    这是Gecko的一个不错的.NET包装版本


    当然有可能。您需要做的就是注册Mozilla ActiveX控件(我相信是mozctlx.dll),您可以将其作为任何ActiveX控件拖到窗体上。编程接口与IE相似(尽管不完全相同),在某些情况下,甚至可以使用Microsoft.MSHTML.dll托管库进行控制。

    我相信这是与Firefox打包在一起的。如果没有,您也可以仅从Mozilla获得可嵌入的位。只需在Google中搜索Mozilla ActiveX控件或Mozilla嵌入C#,就会带您正确的道路。


    GeckoFX不再被更新。替代方法是Se7en Soft提供的MozNet XulRunner包装器。 MozNet具有GeckoFX所没有的大量功能,并且正在积极地进行更新和维护。


    我想指出,对于所有希望将Gecko嵌入其应用程序的人,GeckoFX项目似乎已被其创建者(Skybound Software)放弃了。 MozNET以前是基于GeckoFX的,但sorta'接了球并跑了。它具有完整的打印,打印预览功能,并允许您通过本机Windows打印对话框进行全部设置,甚至还有更多功能。


    2016年更新:

    BrowseEmAll.Gecko

    .Net组件,可用于将Firefox引擎集成到您的.Net应用程序中。它基于Geckofx,但与当前版本的Geckofx不同,它将与Firefox的常规发行版一起使用。要使用Geckofx,您需要自己构建Firefox。再次有商业支持可用,但组件本身是完全开源的。

    (充分披露:我在这家公司工作,所以我说的一丁点都说不定)


    OpenWebKitSharp是WebKit引擎的包装器(每晚),并且非常先进。看看这里(OpenWebKitSharp部分):http://code.google.com/p/open-webkit-sharp/


    截至2011年10月30日,自以前的帖子开始,有新信息要添加。具体来说,在Skybound停止维护其版本的同时,至少有一个积极维护的,免费的,开源的fork。

    我在BitBucket上使用Hindle的fork,借助其分析XpCom idls和创建c#包装程序的工具,它迅速更新了对每个新版本的Firefox / Gecko的支持。

    有关其他选择的概述,请参见这篇文章。


    @马丁:是的,亚当·洛克的版本已经过时了。但这是因为不需要单独的分发。现在,它是由Mozilla代码库的其余部分构建的。

    如果您下载Prism(即XulRunner),将为您提供可以根据需要进行自定义的基础,其中包括控件的最新版本(在 Prism xulrunner目录中,您将找到mozctlx.dll)。 。

    @Greg:实际上,它是一个ActiveX控件。顺便说一句,所有ActiveX控件都是COM控件。 ActiveX基于COM构建。


    我相信" Gecko FX" [1]是您需要的东西。

    从网站报价

    "
    GeckoFX是用干净的带注释的C#编写的Windows Forms控件,该控件将Mozilla Gecko浏览器控件嵌入任何Windows Forms应用程序中。它还包含一个简单的类模型,该模型提供对HTML和CSS DOM的访问。
    "

    1)我无法发布链接,因为"不允许新用户添加超链接"在Google代码中搜索" geckofx"。


    另外,如果您发现自己使用的是Gtk而不是Windows.Forms,则可以使用大量的webkit-sharp,从而可以轻松地将WebViews嵌入到Gtk#应用程序中。


    推荐阅读