簡體   English   中英

Linux上的Mono WebBrowser控件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM