【问题标题】:Is it possible to Embed Gecko or Webkit in a Windows Form just like a WebView?是否可以像 WebView 一样在 Windows 窗体中嵌入 Gecko 或 Webkit?
【发布时间】:2010-09-06 18:29:18
【问题描述】:

我很想知道是否存在 Gecko.NET 之类的东西;)我的意思是,就像我们可以嵌入 WebView 一样,它是任何 Windows 窗体应用程序中的 IE7 的“实例”(并告诉它到navigateto(fancy_url);)。我喜欢使用 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 的公司的电子邮件。他们创建了一个名为“DotNetBrowser”的基于 Chromium 的 .NET 浏览器组件,可用于在 Windows 窗体应用程序中显示现代网页。

直接引用邮件:

以下是有关该组件的一些详细信息,可能会有所帮助:

  1. DotNetBrowser 基于 Chromium,因此支持 HTML5、CSS3、JS 和最新的 Web 标准。该库的底层 Chromium 版本会定期更新。
  2. 该组件适用于 WPF 以及 Windows 窗体桌面应用程序,并且适用于 C# 和 VB.NET。
  3. 该库已获得商业许可,但为开源和学术项目提供免费许可。

免责声明: 我没有使用此 DotNetBrowser,因为我不再进行 Windows 开发,但如果您正在寻找解决方案,可能值得检查。 p>

【问题讨论】:

    标签: c# .net winforms webkit gecko


    【解决方案1】:

    2016 年更新:

    BrowseEmAll.Gecko

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

    (完全披露:我在这家公司工作,所以我所说的一切都持保留态度)

    【讨论】:

    • 这可能是个愚蠢的问题,但是否必须在最终用户的机器上安装特定版本的 Firefox?
    【解决方案2】:

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

    【讨论】:

    • 迄今为止最适合 .Net 的非 IE 需求的 WebBrowser 控件
    • OpenWebkitSharp 已被废弃,因此无用。现有错误不再修复,无法忍受。
    【解决方案3】:

    截至 2011 年 10 月 30 日,自之前的帖子发布以来,有新的信息需要添加。具体来说,虽然 Skybound 停止维护他们的版本,但至少有一个积极维护的、免费的开源分支可用。

    我在 BitBucket 使用Hindle's fork,凭借其解析 XpCom idls 并创建 c# 包装器的工具,该工具可以快速更新并支持每个新版本的 Firefox/Gecko。

    有关其他选择的概述,请参阅 this post

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • GeckoFX 正在积极开发中:bitbucket
      • 作者不再支持 MozNet。
      【解决方案5】:

      GeckoFX 不再更新。替代方案是 Se7en Soft 的 MozNet XulRunner wrapper。 MozNet 具有 GeckoFX 所没有的大量功能,并且正在积极更新和维护。

      【讨论】:

      • MozNet 的 EULA 与 LGPL 相矛盾,使其非法。不要使用它。
      • 更糟糕的是,现在不再提供免费演示。人们不太可能购买 IE 插件组件的替代品,他们可以验证它是否能够执行您使用 IE 组件无法完成的任何任务
      • GeckoFX 积极开发的项目在:bitbucket.org/geckofx
      • 作者不再支持 MozNet。
      【解决方案6】:

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

      从网站引用

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

      1) 我无法发布链接,因为“不允许新用户添加超链接” 在谷歌代码上搜索“geckofx”。

      【讨论】:

      【解决方案7】:

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

      这是一个很好的 .NET 封装的 Gecko 版本

      【讨论】:

        【解决方案8】:

        @Martin:是的,Adam Locke 版本已经过时了。但那是因为不需要单独分发。它现在与 Mozilla 代码库的其余部分一起构建。

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

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

        【讨论】:

        • 我想将 winform 数据传输到 Firefox 浏览器。可以通过 OpenWebKitSharp 类库实现,也可以用于 FF 26.0 版本
        【解决方案9】:

        此外,如果您发现自己使用 Gtk 而不是 Windows.Forms,则可以使用 webkit-sharp tarball 轻松将 WebView 嵌入 Gtk# 应用程序。

        【讨论】:

          【解决方案10】:

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

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

          【讨论】:

          • 下面的答案应该就是答案了。 GeckoFX 是一个更新的 .NET 包装器,ActiveX 控件自 2005 年以来没有更新。
          猜你喜欢
          • 2011-02-08
          • 1970-01-01
          • 1970-01-01
          • 2011-12-06
          • 1970-01-01
          • 2023-04-11
          • 1970-01-01
          • 2011-12-17
          • 2015-05-21
          相关资源
          最近更新 更多