GeckoFX is a .NET control, that works similarly to “System.Windows.Forms.WebBrowser” Control, while being cross platform, and offering much more control, it is in my opinion, a great replacement for the “System.Windows.Forms.WebBrowser”.

GeckoFX is based on the same engine as Firefox, the Mozilla Gecko.

This is an example on how to use it in Visual Studio.

This is a great replacement for Forms.WebBrowser control.

To get this working, you need to first download the GeckoFX from here:

https://bitbucket.org/geckofx/

During the writing of this, the last available version was the “GeckoFX-29.0”, so I downloaded that from here, if while you download this found a newer version, which is very likely, be careful to what XUL version you download on the next step:

https://bitbucket.org/geckofx/geckofx-29.0/downloads

and last revision:

https://bitbucket.org/geckofx/geckofx-29.0/downloads/GeckoFx-Windows-29.0-0.11.zip

After that, you need to download the XULRunner runtime from Mozilla website, it is very important that you download a version from here that matches the same version as the GeckoFX version.

Here is a version list that will help you know what XULRunner version you need:

https://bitbucket.org/geckofx/geckofx/wiki/Version_lists

And download from:
http://ftp.mozilla.org/pub/mozilla.org/xulrunner/

In my case, I downloaded version “29.0” from:
http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/29.0/runtimes/xulrunner-29.0.en-US.win32.zip

Extract the contents of the archive in the same folder as the executable, the same folder that has the WindowsFormsApplication1.exe, if you choose to extract to a different folder, be sure to modify the code to point to the new folder.

After that, start Visual studio, create a new C# Windows form project, and add refrences to both “Geckofx-Winforms.dll”, and “Geckofx-Core.dll” in the project refrences.

You may also need to add those line to the top of the file:

using Gecko;
using System.IO;
using System.Linq;
using System.Reflection;

And in the form constructor, you need to add some code to initiate the GeckoFX control, this code will be added after the “InitializeComponent()” function call, like this:

    GeckoWebBrowser browser;
public Form1()
{
InitializeComponent();
 
var app_dir = Path.GetDirectoryName(Application.ExecutablePath);
Gecko.Xpcom.Initialize(Path.Combine(app_dir, "xulrunner"));
 
browser = new GeckoWebBrowser();
 
browser.Dock = DockStyle.Fill;
this.browser.Name = "browser";
 
this.Controls.Add(browser);
}

And add this one line to the form load event handler:

    private void Form1_Load(object sender, EventArgs e)
{
browser.Navigate("http://www.wikipedia.org");
}

Important Problem: you need to go to your project properties, and in the ‘build’ tab, change the platform target to x86 for (all configurations), instead of “Any CPU”.

Before running the application for the first time, do not forget that you need to extract the xulrunner in the “\bin\Debug” or “\bin\Release” folder.

This is the result:

黄聪:在.NET中使用GeckoFX 29的更多相关文章

  1. 黄聪:AngularJS中的$resource使用与Restful资源交互(转)

    原文:http://blog.csdn.net/he90227/article/details/50525836 1.AngularJS中的 $resource 这个服务可以创建一个资源对象,我们可以 ...

  2. 转载: 黄聪:C#中 Excel列字母与数字的转换

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. 黄聪:C#中HtmlAgilityPack判断是否包含或不包含指定的属性或值

    //选择不包含class属性的节点 var result = node.SelectNodes(".//span[not(@class)]"); //选择不包含class和id属性 ...

  4. 黄聪:HtmlAgilityPack中SelectSingleNode的XPath和CSS选择器

    XPath和CSS选择器 原文:http://ejohn.org/blog/xpath-css-selectors 最近,我做了很多工作来实现一个同时支持XPath和CSS 3的解析器,令我惊讶的是: ...

  5. 黄聪:wordpress中PHP运行错最有效解决办法Fatal error: Out of memory (allocated 6029312)(转)

    近日在升级wordpress 3.2.1和若干插件的过程中,发现了一个wordpress的错误:Allowed memory size of XXX bytes exhausted Fatal err ...

  6. 黄聪:C#中CefSharp的简单使用

    C#中CefSharp的简单使用 https://blog.csdn.net/qq_26712977/article/details/78282995

  7. 黄聪:bootstrap中模态框modal在苹果手机上会失效

    bootstrap中模态框在苹果手机上会失效 可将代码修改为<a  data-toggle="modal" data-target="#wrap" hre ...

  8. 黄聪:C#中WebClient自动判断编码是UTF-8还是GBK,并且有超时判断功能

    public class WebDownload : WebClient { private int _timeout; /// <summary> /// 超时时间(毫秒) /// &l ...

  9. 黄聪:wordpress中remove_action、add_action、 do_action()的hook钩子都有哪些

    原文地址:http://codex.wordpress.org/Plugin_API/Action_Reference muplugins_loaded After must-use plugins ...

随机推荐

  1. npm http-server ubuntu

    Node.js中http-server的使用 使用阿里的npm镜像 国外的npm太慢了.查看一下自己使用的源: npm config get registry 1 应该显示https://regist ...

  2. python三大框架之一flask中cookie和session的相关操作

    状态保持 Cookie cookie 是指某些网站为了 辨别  用户身份,进行会话跟踪而储存在用户本地的数据(通常会经过加密),复数形式是 coolies. cookie是由服务器端生成,发送给客户端 ...

  3. 20155219 2016-2017-2 《Java程序设计》第5周学习总结

    20155219 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 异常处理 语法与继承构架 异常就是程序在运行时出现的不正常情况.java中的错误以对象的方式 ...

  4. HDU 1907:John(尼姆博弈变形)

    John Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submi ...

  5. 05 ajax,jquery,xstream,json解析

    Ajax “Asynchronous Javascript And XML”(异步JavaScript和XML),把原有的技术,整合到一起           1.使用CSS和XHTML来表示.   ...

  6. 浅谈log4j-6-xml配置 转自godtrue

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SY ...

  7. 【转】基于Map的简易记忆化缓存

    看到文章后,自己也想写一些关于这个方面的,但是觉得写的估计没有那位博主好,而且又会用到里面的许多东西,所以干脆转载.但是会在文章末尾写上自己的学习的的东西. 原文出处如下: http://www.cn ...

  8. LeetCode - Find Duplicate Subtrees

    Given a binary tree, return all duplicate subtrees. For each kind of duplicate subtrees, you only ne ...

  9. Python——psutil的使用(获取系统性能信息)

    >>> import psutil #导入psutil >>> a=psutil.virtual_memory() >>> a.total #总虚 ...

  10. scikit-learn数据集下载太慢的问题

    有时候用scikit-learn在线下载数据时太慢,因为网络或者其他原因,这时候我们可以先把数据集下载到本地,然后再把这个数据集放到scikit-learn的data中,首先我们需要找到 scikit ...