如何在WPF中使用WebKit浏览器控件

时间:2010-12-08 10:26:06

标签: c# .net wpf webkit

我想在我的WPF应用程序中使用WebKit浏览器控件。但是,我无法在设计时添加它。即使我将WebKit添加到工具箱中,它也处于禁用状态。

我的问题是如何在WPF表单的设计时使用该控件?

谢谢, OMKAR

3 个答案:

答案 0 :(得分:2)

正如http://msdn.microsoft.com/en-us/library/ms742735(v=vs.110).aspx中所述,您应首先在XAML文件中创建一个WPF网格。

<Grid x:Name="grdBrowserHost">
</Grid>

通过将此代码插入C#源代码,在WPF表单中添加.NET WebKit。

System.Windows.Forms.Integration.WindowsFormsHost host =new System.Windows.Forms.Integration.WindowsFormsHost();

// Create the ActiveX control.
WebKit.WebKitBrowser browser = new WebKit.WebKitBrowser();
browser.Navigate("http://www.google.com");

// Assign the ActiveX control as the host control's child.
host.Child = browser;

// Add the interop host control to the Grid 
// control's collection of child controls. 
grdBrowserHost.Children.Add(host);

不要忘记包含这些参考资料

System.Windows.Forms

WindowsFormsIntegration

在你的项目中。

希望得到这个帮助。

答案 1 :(得分:0)

我猜它是一个activex控件。试试这个: http://msdn.microsoft.com/en-us/library/ms742735.aspx

答案 2 :(得分:0)

目前在WPF应用程序中托管Webkit(或Blink)的最佳方法之一 (截至2017年10月)似乎是the Awesomium project,它有各种平台的一流包装库,包括WinForms和WPF。

我建议不要在WPF应用程序中使用System.Windows.Forms.Integration.WindowsFormsHost内的任何Web浏览器控件,因为至少在High-DPI上下文中添加了间接层和不可预测的行为层 - 我确定在那里也是其他原因。

请注意,Awseomium不是真正的开源或自由软件。 If your company makes more than $100k USD in profit per year then for commercial applications there is a $2900 USD per-title license fee

有了这个警告,getting started with Awesomium in WPF is straightforward

  1. Download the Awesomium SDK。 (截至2017年10月,Awesomium下载页面无法升级,but the SDK is still available to download from the Internet Archive和其他地方在线)。
  2. SDK安装程序将为您在GAC中注册Awesomium程序集,因此它们将出现在WPF(和WinForms)工具箱的“添加/删除项目”窗口中。
  3. 在Visual Studio中打开WPF项目并打开XAML设计文档。
  4. 打开Visual Studio工具箱并打开“添加/删除项目”窗口,然后从GAC中加载的Awesomium.Windows.Controls.dll程序集中添加Awesomeium WPF控件。您可能只想要WebControl控件(Awesomium.Windows.Controls.WebControl)。
  5. 将控件从“工具箱”拖放到设计图面上 - Visual Studio将自动更新项目以添加对Awesomeium装配体的引用。
  6. 请注意,Chromium周围还有其他包装库 - 我并不打算特别认可Awesomium,但是当我在最近的项目中使用它时,我度过了愉快的时光。

    另一个流行的库是CefSharp,它是BSD许可的,与Awesomium相比更加可口,但是(据我所知)并没有分发处理Visual Studio Toolbox的SDK安装程序为您整合 - 但看起来您只需手动添加对CefSharp.Wpf.dll程序集的引用并将元素添加到您的WPF项目中(使用XAML编辑器,而不是工具箱 - 您应该做的事情)。