提问人:Martin Marconcini 提问时间:8/25/2008 最后编辑:Martin Marconcini 更新时间:11/28/2017 访问量:96145
是否可以像 WebView 一样在 Windows 窗体中嵌入 Gecko 或 Webkit?
Is it possible to Embed Gecko or Webkit in a Windows Form just like a WebView?
问:
我很想知道是否有 Gecko.NET ;)我的意思是,就像我们可以嵌入一个 WebView,它是任何 Windows 窗体应用程序中 IE7 的“实例”(并告诉它)。我很想使用Firefox或WebKit。navigateto(fancy_url);
有人试过这个吗?
更新:请记住,虽然可以使用上述控件嵌入 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 窗体应用程序中显示新式网页。
要直接引用电子邮件:
以下是有关该组件的一些详细信息,可能会有所帮助:
- DotNetBrowser基于Chromium,因此支持HTML5,CSS3,JS和最新的Web标准。该库的基础 Chromium 版本会定期更新。
- 该组件适用于 WPF 和 Windows 窗体桌面应用程序,并且适用于 C# 和 VB.NET。
- 该库已获得商业许可,但为开源和学术项目提供免费许可。
免责声明:我没有使用这个 DotNetBrowser,因为我不再做 Windows 开发,但如果您正在寻找解决方案,可能值得检查。
答:
这当然是可能的。您需要做的就是注册Mozilla ActiveX控件(我相信mozctlx.dll),然后您可以将其作为任何ActiveX控件拖动到窗体上。编程接口与IE接口相似(但不完全相同),在某些情况下,您甚至可以使用Microsoft.MSHTML.dll托管库进行控制。
我相信这是与Firefox打包在一起的。如果没有,您也可以从Mozilla获得可嵌入的位。只需在 Google 上搜索 Mozilla ActiveX 控件或 Mozilla Embedding C#,这应该会带您走上正确的道路。
评论
此外,如果你发现自己使用的是Gtk而不是Windows.Forms,那么有一个webkit-sharp的压缩包,可以很容易地将WebView嵌入到Gtk#应用程序中。
@Martin:是的,亚当·洛克的版本已经过时了。但那是因为不需要单独的发行版。它现在是使用 Mozilla 代码库的其余部分构建的。
如果您下载Prism(即XulRunner),这将为您提供一个可以根据需要自定义的基础,其中包括最新版本的控件(在\Prism\xulrunner目录中,您将找到mozctlx.dll)。
@Greg:实际上,它是一个ActiveX控件。顺便说一句,所有 ActiveX 控件都是 COM 控件。ActiveX 是基于 COM 构建的。
评论
http://code.google.com/p/geckofx/
这是一个不错的.NET包装版的Gecko
I Belive “Gecko FX”[1] 是你需要的东西。
从网站引用
""" GeckoFX 是一个用干净的注释 C# 编写的 Windows 窗体控件,它将 Mozilla Gecko 浏览器控件嵌入到任何 Windows 窗体应用程序中。它还包含一个简单的类模型,提供对 HTML 和 CSS DOM 的访问。 """
1)我无法发布链接,因为“不允许新用户添加超链接”在谷歌代码上搜索“geckofx”。
评论
GeckoFX 不再更新。另一种选择是 Se7en Soft 的 MozNet XulRunner 包装器。MozNet 拥有 GeckoFX 所没有的大量功能,并且正在积极更新和维护。
评论
我只想指出,对于所有希望将 Gecko 嵌入到他们的应用程序中的人来说,GeckoFX 项目似乎已被其创建者(Skybound Software)放弃。MozNET虽然以前基于GeckoFX,但有点像捡起球并带着它跑。它具有打印、打印预览的全部功能,并允许您通过本机 Windows 打印对话框进行设置,甚至 - 以及更多。
OpenWebKitSharp 是 WebKit 引擎(每晚)的包装器,非常先进。请看这里(OpenWebKitSharp 部分): http://code.google.com/p/open-webkit-sharp/
评论
截至 2011 年 10 月 30 日,自前几篇文章发布以来,有新信息需要添加。具体来说,虽然 Skybound 停止维护他们的版本,但至少有一个积极维护的、免费的、开源的分支可用。
我在 BitBucket 上使用 Hindle 的分支,凭借他的工具解析 XpCom idl 并创建 c# 包装器,它快速更新,支持每个新版本的 Firefox/Gecko。
有关其他选择的概述,请参阅此帖子。
2016年更新:
一个 .Net 组件,可用于将 Firefox 引擎集成到您的 .Net 应用程序中。这是基于 Geckofx 的,但与当前版本的 Geckofx 不同,这将与 Firefox 的正常发布版本一起使用。要使用 Geckofx,您需要自己构建 Firefox。同样,商业支持是可用的,但组件本身是完全开源的。
(全面披露:我在这家公司工作,所以对我所说的一切持保留态度)
评论