Thanks to Cody for the following answer to my post http://mono.1490590.n4.nabble.com/Embedding-an-IE-Window-td4662025.html
I decided to tackle the problem from a slightly different angle. If my app was running on Windows then embed IE as the web browser, and if I was running Linux then embed WebKit. Below is my undocumented code that I wrote in #Develop (Windows 7) and tested on openSUSE 13.1 My main references for this project are: http://shana.worldofcoding.com/en/browser.html https://github.com/bratsche/gtkie I hope that others find this code of use. Chris TWGTKWeb.cs (wrapper for IE and WebKit) ############################# /* * Created by SharpDevelop. * User: Chris * Date: 04/03/2014 * Time: 13:43 * * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Windows.Forms; using Gtk; using WebKit; //Add reference to project, set "Aliases" to global and "Copy Local" to false (webkit-sharp.dll). //http://shana.worldofcoding.com/en/browser.html //https://github.com/bratsche/gtkie namespace TottleWare.LinuxGUI.WebBrowser { public class TWWebBrowserIE { [System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint = "SetParent")] internal static extern System.IntPtr SetParent([System.Runtime.InteropServices.InAttribute()] System.IntPtr hWndChild, [System.Runtime.InteropServices.InAttribute()] System.IntPtr hWndNewParent); public System.Windows.Forms.WebBrowser wb = null; public Gtk.Socket socket = new Gtk.Socket(); public void InitIE(Gtk.Window w) { wb = new System.Windows.Forms.WebBrowser (); wb.Height = 600; wb.Width = 600; w.Add (socket); socket.SetSizeRequest(600, 600); socket.Realize(); socket.Show(); var browser_handle = wb.Handle; IntPtr window_handle = (IntPtr) socket.Id; SetParent(browser_handle, window_handle); } public void Navigate(string uri) { wb.Navigate(uri); } public TWWebBrowserIE(Gtk.Window w) { InitIE (w); } } //======================================================================= public class TWWebBrowserWK { public WebView wb = null; public ScrolledWindow scrollWindow = new ScrolledWindow(); public void InitWebKit(Gtk.Window w) { wb = new WebView(); scrollWindow.Add(wb); w.Add(scrollWindow); w.ShowAll(); } public void Navigate(string uri) { wb.Open(uri); } public TWWebBrowserWK(Gtk.Window w) { InitWebKit(w); } } //======================================================================= } Program.cs (main program) ################## /* * Created by SharpDevelop. * User: Chris * Date: 04/03/2014 * Time: 13:43 * * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using Gtk; using TottleWare.LinuxGUI.WebBrowser; namespace TestWeb { public partial class MainWindow: Gtk.Window { protected virtual void Build () { this.Name = "MainWindow"; this.WindowPosition = ((global::Gtk.WindowPosition)(1)); if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 976; this.DefaultHeight = 667; this.Show (); this.DeleteEvent += new global::Gtk.DeleteEventHandler (this.OnDeleteEvent); } public MainWindow () : base (Gtk.WindowType.Toplevel) { dynamic web; Build (); if (Environment.OSVersion.Platform.ToString() == "Unix") { web = new TWWebBrowserWK(this); } else { web = new TWWebBrowserIE(this); } web.Navigate("http://www.cardiff.ac.uk"); } protected void OnDeleteEvent (object sender, DeleteEventArgs a) { Application.Quit (); a.RetVal = true; } } class Program { [STAThread] public static void Main(string[] args) { Application.Init (); MainWindow win = new MainWindow (); win.Show (); Application.Run (); } } } -- View this message in context: http://mono.1490590.n4.nabble.com/Webkit-GTK-For-Windows-tp4661981p4662118.html Sent from the Mono - Gtk# mailing list archive at Nabble.com. _______________________________________________ Gtk-sharp-list maillist - Gtk-sharp-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/gtk-sharp-list