今天研究一个小问题,在C#的WebBrowser下打开奇艺网的视频,经常整个FLASH就偏了,进度条控制条什么的都没有。

要全屏一下然后还原才能解决这个问题。

如下,图1为webbrowser打开,图2为IE8打开。webbrowser中整个偏了,并且没有控制条。

然后试了一下用各种基于微软Webbrowser控件的浏览器都有该问题。。用VS2010 建winform,WPF,silverlight用webbrowser全都有该问题……

然后我打开Linux试了一下firefox,没有该BUG。

于是我想,是不是有可以用于.NET下的firefox控件。搜了一下,有个基于.NET平台开源的gecko引擎组件

—— geckofx

然后DOWN一堆东西,(它运行还需要flash for windows firefox插件及xulrunner)

写了个小工程测了一下,哇,果然解决该问题了!

它的方法也基本是仿照.NET webbrowser写的,所以不会感到陌生。

极力推荐该组件——geckofx

附:简单使用示例代码。

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using Skybound.Gecko;
  10. namespace geckofxBrowswer
  11. {
  12. public partial class Form1 : Form
  13. {
  14. static private string xulrunnerPath = "C://xulrunner/";
  15. static private string testUrl = "http://www.qiyi.com/dianying/20100521/n14202.html";
  16. private GeckoWebBrowser Browser;
  17. public Form1()
  18. {
  19. InitializeComponent();
  20. Skybound.Gecko.Xpcom.Initialize(xulrunnerPath);
  21. Browser = new GeckoWebBrowser();
  22. Browser.Parent = this;
  23. Browser.Dock = DockStyle.Fill;
  24. }
  25. private void button1_Click(object sender, EventArgs e)
  26. {
  27. Browser.Navigate(testUrl);
  28. }
  29. private void button2_Click(object sender, EventArgs e)
  30. {
  31. }
  32. }
  33. }

附:

项目开源地址:http://code.google.com/p/geckofx/

flash插件下载地址: http://get.adobe.com/flashplayer/otherversions/

XULrunner下载地址: ftp://ftp.mozilla.org/pub/xulrunner/releases/1.9.0.0/runtimes/xulrunner-1.9.en-US.win32.zip

.NET下WebBrowser的一个BUG以及其替代品——geckofx的更多相关文章

  1. 在chrome下-webkit-box布局的一个bug

    chrome,也就是webkit内核下作的检测, chrome版本是40, -webkit-box这种布局在移动端用的比较多,主要是因为pc端的浏览器内核参差不齐. 因为在写HTML的时候看上了-we ...

  2. angular在ie8下的一个bug

    昨天拿项目在ie8下测试,发现不少bug,其中有一个bug让我很不解,报了一个thead开头的bug,因为已经切回到linux下了,我就不报具体是什么bug了,鼓捣了半天,发现引用angular的应用 ...

  3. 记录Window系统下myeclipes连接linux下mysql所出现的一个bug

    记录myeclipes远程连接mysql所出现的一个bug 今天在玩框架hibernate时,出现一个非常费解的bug,话不多说,先看bug Access denied for user 'root' ...

  4. android一个下拉放大库bug的解决过程及思考

    android一个下拉放大库bug的解决过程及思考 起因 项目中要做一个下拉缩放图片的效果,搜索了下github上面,找到了两个方案. https://github.com/Frank-Zhu/Pul ...

  5. 亚马逊AWS学习——多网络接口下配置EC2实例连接公网的一个“bug”

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/47667627 本文出自[我是干勾鱼的博客] 之前在<亚马逊AWS学习--E ...

  6. pycharm的一个bug,pycharm 在debug时,会运行项目下的所有文件,而不是当前文件

    pycharm的一个bug,pycharm 在debug时,会运行项目下的所有文件,而不是当前文件

  7. Python2 下 Unicode 的一个小bug

    关于Python的编码问题已经是老生常谈了,此处主要是介绍一个罕见的问题,也算是Python2的一个bug了(Python3不会有此问题). 在有时候我们去爬取网页或者调用一些第三方库获取文本的时候, ...

  8. MySQL关于exists的一个bug

    今天碰到一个很奇怪的问题,关于exists的, 第一个语句如下: SELECT ) FROM APPLY t WHERE EXISTS ( SELECT r.APPLY_ID FROM RECORD ...

  9. 由一个bug引发的SQLite缓存一致性探索

    问题 我们在生产环境中使用SQLite时中发现建表报“table xxx already exists”错误,但DB文件中并没有该表.后面才发现这个是SQLite在实现过程中的一个bug,而这个bug ...

随机推荐

  1. 【转】Go语言入门教程(一)Linux下安装Go

    说明 系统是Ubuntu. 关于安装 下载安装包 当前官方下载地址是https://golang.org/dl/,如果不能访问,请自行FQ,FQ是技术工作者的必备技能. 安装 tar -xzvf go ...

  2. yii 在lnmp下访问问题

    lnmp大坑 /usr/local/nginx/conf/fastcgi.conf  文件里面

  3. XGBoost参数中文翻译以及参数调优

    XGBoost:参数解释:https://blog.csdn.net/zc02051126/article/details/46711047 机器学习系列(11)_Python中Gradient Bo ...

  4. 【实验级】Docker-Compose搭建单服务器ELK伪集群

    本文说明 由于最近在搭ELK的日志系统,为了演示方案搭了个单台服务器的日志系统,就是前一篇文章中所记,其实这些笔记已经整理好久了,一直在解决各种问题就没有发出来.在演示过程中我提到了两个方案,其中之一 ...

  5. Python基础(六) 基础文件操作

    今天学习python下对文件的基础操作,主要从open函数.File对象的属性.文件定位.简单操作.举例说明几个步骤开始学习,下面开始进入今天的主题: 一.open函数介绍 open函数主要是打开一个 ...

  6. spring与quartz整合实现分布式动态创建,删除,改变执行时间定时任务(mysql数据库)

    背景:因为在项目中用到了定时任务,当时想到了spring的quartz,写完发现费了很大功夫,光是整合就花了一上午,其中最大的问题就是版本问题,项目中用的是spring3.2.8的版本,查阅发现,3. ...

  7. at24c02系列和at24c256系列的比较

    编号的含义: at24c02系列包括的有: 128(1K),256(2K),512(4K),1024(8K),2048(16K)字节(B) at24c256系列包括的有: 16384(128K),32 ...

  8. Spring MVC学习总结(8)——Swagger入门详解

    前言 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容,见参考资料. S ...

  9. poj 2823 二分法+单调队列

    #include<stdio.h> #include<string.h> #define N  1100000 int a[N]; int fmin[N],fmax[N]; i ...

  10. 后台获得集合,变成json字符串,放到EL表达式,js进行获取遍历

    //把集合编程json字符串,放到el表达式 JSONArray array = new JSONArray(); JSONArray fromObject = array.fromObject(ar ...