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

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

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

谢谢,Omkar

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

  

并通过将此代码插入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 

在你的项目中。

希望这有帮助。

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

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

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

请注意,Awseomium不是真正的开源或自由软件。 如果您的公司每年的利润超过10万美元,那么对于商业应用,每个标题的许可费用为2900美元 。

有了这个警告, 在WPF中开始使用Awesomium很简单 :

  1. 下载Awesomium SDK 。 (截至2017年10月,Awesomium下载页面无法升级, 但SDK仍可从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将自动更新项目以添加对Awesomeiumassembly的引用。

请注意,Chromium周围还有其他包装库 – 我并不打算特别认可Awesomium,但是当我在最近的项目中使用它时,我玩得很开心。

另一个受欢迎的库是CefSharp ,它是BSD许可的,与Awesomium相比更加可口,但(据我所知)并没有分发一个SDK安装程序来处理Visual Studio Toolbox集成 – 但看起来你只需要手动添加对CefSharp.Wpf.dll程序集的引用并将元素添加到WPF项目中(使用XAML编辑器,而不是工具箱 – 无论如何你应该这样做)。