我想在我的WPF应用程序中使用WebKit浏览器控件。但是,我无法在设计时添加它。即使我将WebKit添加到工具箱中,它也处于禁用状态。
我的问题是如何在WPF表单的设计时使用该控件?
谢谢, OMKAR
答案 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:
Awesomium.Windows.Controls.dll
程序集中添加Awesomeium WPF控件。您可能只想要WebControl
控件(Awesomium.Windows.Controls.WebControl
)。请注意,Chromium周围还有其他包装库 - 我并不打算特别认可Awesomium,但是当我在最近的项目中使用它时,我度过了愉快的时光。
另一个流行的库是CefSharp,它是BSD许可的,与Awesomium相比更加可口,但是(据我所知)并没有分发处理Visual Studio Toolbox的SDK安装程序为您整合 - 但看起来您只需手动添加对CefSharp.Wpf.dll
程序集的引用并将元素添加到您的WPF项目中(使用XAML编辑器,而不是工具箱 - 您应该做的事情)。