[英]Mono WebBrowser control on Linux
我正在編寫一個我希望在Windows或Linux下運行的應用程序。 由於它是一個文本應用程序,渲染和用戶交互的明顯選擇是在WebBrowser
控件中使用html。 這一切在Windows中使用Mono都非常有用,但我絕對不知道如何在Linux中使用Mono讓它工作。 我正在運行Linux Mint 17,安裝了MonoDevelop和Firefox。 以下代碼片段編譯並運行,但是當應用程序啟動時, wbMain
不會顯示。 嘗試使用wbMain
呈現html字符串時應用程序死亡。
private System.Windows.Forms.Panel pnlMain;
private Mono.WebBrowser.IWebBrowser wbMain;
private System.Windows.Forms.Button btnGo;
this.pnlMain = new System.Windows.Forms.Panel();
this.wbMain = Mono.WebBrowser.Manager.GetNewInstance();
this.wbMain.Activate();
this.btnGo = new System.Windows.Forms.Button();
this.pnlMain.SuspendLayout();
this.SuspendLayout();
//
// pnlMain
//
this.pnlMain.Controls.Add((System.Windows.Forms.Control)this.wbMain.Window);
this.pnlMain.Controls.Add(this.btnGo);
this.pnlMain.Location = new System.Drawing.Point(12, 1);
this.pnlMain.Name = "pnlMain";
this.pnlMain.Size = new System.Drawing.Size(260, 248);
this.pnlMain.TabIndex = 0;
//
// wbMain
//
this.wbMain.Resize(260, 216);
this.wbMain = Mono.WebBrowser.Manager.GetNewInstance();
問題在於我從這里理解的GetNewInstance()
。 GetNewInstance
默認采用Windows平台,您需要傳入自己的Mono.WebBrowser.Platform
,以便在您想要的框架中呈現(如Gtk)。
您可以在我鏈接的源代碼中看到,默認的GetNewInstance()
返回Platform.Winforms
;
public static IWebBrowser GetNewInstance ()
{
return Manager.GetNewInstance (Platform.Winforms);
}
此外,Mono.WebBrowser已經退役,轉而支持WebkitSharp。 您現在應該使用WebkitSharp來執行此操作。 WebkitSharp有......一些問題,因此目前有一個名為open-webkit-sharp的開放版本也可能適合你。 截至2012年,該代碼至少是最新的。而Mono WebBrowser和webkit-sharp沒有任何重大的代碼更改......在幾年內,至少5到7年。
我也對Awesomium的開放版本好運 ,它是游戲行業的主要產品。 同樣,Awesomium的開放版本自2012年以來沒有任何重大更新。 但是,如果金錢/費用不是問題並且最近有更新,您可以獲得Awesomium的付費版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.