2010-12-08 26 views
5

Quiero usar el control del navegador WebKit en mi aplicación WPF. Sin embargo, no puedo agregarlo en tiempo de diseño. Incluso si agrego el WebKit a la caja de herramientas, está deshabilitado.Cómo usar el control del navegador WebKit en WPF

Mi pregunta es cómo usar ese control durante el tiempo de diseño en formato WPF?

Gracias, Omkar

+1

[Un WebBrowser Real WPF 4.0] (http://chriscavanagh.wordpress.com/2010/10/04/a-real-net-4-0-webbrowser/) – rooks

Respuesta

2

Como se explica en http://msdn.microsoft.com/en-us/library/ms742735(v=vs.110).aspx, primero debe crear una cuadrícula WPF en su archivo XAML.

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

Y añada .NET WebKit en el formulario WPF insertando este código en su fuente C#.

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); 

No se olvide de incluir estas referencias

System.Windows.Forms 

WindowsFormsIntegration 

en su proyecto.

Espero que esta ayuda.

+0

Esto tiene el desafortunado resultado de ejecutar WebKit dentro de un hWnd separado a través del 'WindowsFormsHost' que luego se vuelve a incluir en el contexto de WPF, lo que agrega muchas capas de direccionamiento indirecto que dañarán el rendimiento y pueden no ser utilizables en condiciones de alta resolución de ppp. – Dai

0

Uno de los mejores enfoques para la celebración de Webkit (o parpadeo) en una aplicación WPF actualmente (a partir de octubre 2017) parece ser con the Awesomium project que tiene de primera clase-bibliotecas envoltura para varias plataformas, incluyendo Windows Forms y WPF.

Aconsejo no utilizar ningún control de navegador web dentro de un System.Windows.Forms.Integration.WindowsFormsHost en una aplicación WPF porque, al menos, de las capas agregadas de direccionamiento indirecto y el comportamiento impredecible en contextos de alta DPI - estoy seguro de que hay otras razones también.

Tenga en cuenta que Awseomium no es verdadero de código abierto o software libre. 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.

Con esta advertencia de la manera, getting started with Awesomium in WPF is straightforward:

  1. Download the Awesomium SDK. (A partir de octubre de 2017, la página de descarga de Awesomium no estará disponible para una actualización, but the SDK is still available to download from the Internet Archive y otros lugares en línea).
  2. El instalador de SDK registrará los ensamblajes de Awesomium en el GAC, por lo que aparecerán en la ventana Agregar/quitar elementos de WPF (y WinForms) de la Caja de herramientas.
  3. Abra su proyecto WPF en Visual Studio y abra un documento de diseño XAML.
  4. Abra Visual Studio Toolbox y abra la ventana Agregar o quitar elementos y agregue los controles Awesomeium WPF desde el ensamblaje Awesomium.Windows.Controls.dll cargado en su GAC. Probablemente solo desee el control WebControl (Awesomium.Windows.Controls.WebControl).
  5. Arrastre y suelte el control de Toolbox en su superficie de diseño. Visual Studio actualizará automáticamente su proyecto para agregar las referencias a los ensamblajes Awesomeium.

en cuenta que hay otras bibliotecas envoltura alrededor de Cromo - Yo no la intención de refrendar Awesomium específicamente, pero tenía un buen tiempo con él cuando lo usé en un proyecto reciente.

Otra biblioteca popular es CefSharp que tiene licencia BSD, que será más aceptable en comparación con la de Awesomium, pero (por lo que puedo decir) no distribuye un instalador SDK que maneje la integración de Visual Studio Toolbox para usted, pero parece como que solo necesita agregar manualmente una referencia al ensamblaje CefSharp.Wpf.dll y agregar los elementos a su proyecto WPF (usando el editor XAML, no el Cuadro de herramientas, que de todos modos debería hacer).

Cuestiones relacionadas