我想在我的WPF應用程序中使用WebKit瀏覽器控件。但是,我無法在設計時添加它。即使我將WebKit添加到工具箱中,它也處於禁用狀態。如何在WPF中使用WebKit瀏覽器控件
我的問題是如何在WPF窗體的設計時使用該控件?
感謝, OMKAR
我想在我的WPF應用程序中使用WebKit瀏覽器控件。但是,我無法在設計時添加它。即使我將WebKit添加到工具箱中,它也處於禁用狀態。如何在WPF中使用WebKit瀏覽器控件
我的問題是如何在WPF窗體的設計時使用該控件?
感謝, OMKAR
我猜這是一個activex控件。試試這個: http://msdn.microsoft.com/en-us/library/ms742735.aspx
正如在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
在您的項目
。
希望得到這個幫助。
這有不幸的結果運行WebKit內一個單獨的hWnd通過'WindowsFormsHost`,然後在WPF上下文中重新映射 - 這增加了許多間接性層,這會損害性能,並且在高DPI條件下可能不可用。 – Dai 2017-10-08 08:38:18
目前在WPF應用程序 (截至2017年10月)中託管Webkit(或Blink)的最佳方法之一似乎是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相比,它更可口,但是(據我所知)並不分發一個SDK安裝程序來處理Visual Studio Toolbox集成 - 但它看起來很像就像你只需要手動添加一個對CefSharp.Wpf.dll
程序集的引用,並將這些元素添加到你的WPF項目中(使用XAML編輯器,而不是工具箱 - 無論如何你應該這樣做)。
[一個真正的WPF 4.0 WebBrowser](http://chriscavanagh.wordpress.com/2010/10/04/a-real-net-4-0-webbrowser/) – rooks 2010-12-09 12:15:35