.NET下WebBrowser的一個BUG以及其替代品—geckofx
阿新 • • 發佈:2019-02-16
今天研究一個小問題,在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
附:簡單使用示例程式碼。
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
-
using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using Skybound.Gecko;
- namespace geckofxBrowswer
- {
- public partial class Form1 : Form
- {
- static private string xulrunnerPath = "C://xulrunner/";
-
static private string testUrl = "http://www.qiyi.com/dianying/20100521/n14202.html";
- private GeckoWebBrowser Browser;
- public Form1()
- {
- InitializeComponent();
- Skybound.Gecko.Xpcom.Initialize(xulrunnerPath);
- Browser = new GeckoWebBrowser();
- Browser.Parent = this;
- Browser.Dock = DockStyle.Fill;
- }
- private void button1_Click(object sender, EventArgs e)
- {
- Browser.Navigate(testUrl);
- }
- private void button2_Click(object sender, EventArgs e)
- {
- }
- }
- }
附: