我正在尝试提出在 Windows 上使用 Gtk 使用 Mono.WebBrowser 的最简单示例。Windows.Forms 版本工作正常(如果您不指定 Platform.Gtk,则为默认版本),但我需要集成到现有的 Gtk 跨平台应用程序中。
这是一个简单的例子:
public static void Main (string[] args)
{
Gtk.Application.Init ();
Gtk.Window win = new Gtk.Window ("Title");
Mono.WebBrowser.IWebBrowser browser =
Mono.WebBrowser.Manager.GetNewInstance(Mono.WebBrowser.Platform.Gtk);
browser.Load(win.Handle, 500, 250);
win.ShowAll ();
GLib.Timeout.Add( 500, delegate {
browser.Navigation.Go ("http://google.com/");
return false;
});
Gtk.Application.Run ();
}
它编译、运行和浏览器。初始化为真。但它不会呈现到 Gtk.Window (或我尝试过的任何其他 Gtk.widget )。是什么触发浏览器实际呈现自己?可能是我无法将它直接渲染到窗口中(我查看了 mono-docbrowser [1] 源代码,并且有一个更复杂的示例,但它也没有渲染)。
我看过 webkit-sharp,但不能让它在带有 Gtk 的 Windows 或 Mac 上工作。
[1] https://github.com/mono/mono-tools/tree/master/docbrowser