c# wpf webkit browser

C#WPF WebBrowser alternativa



c# cefsharp (8)

Consulte el http://code.google.com/p/chromiumembedded/ proyecto que proporciona un marco para incrustar el navegador Chromium (WebKit) en diferentes marcos de interfaz de usuario.

Hay un enlace a una implementación de .NET / Mono https://bitbucket.org/xilium/xilium.cefglue

Necesito un navegador web dentro de mi aplicación .NET 3.5 y no quiero usar el navegador web predeterminado (porque se siente con errores y lento). Probé el cromo de Chris Cavanagh, pero no pude hacer que funcionara ... ¿hay alternativas más fáciles de usar? Estoy buscando algo muy simple y liviano en la computadora, que albergará un frente de tienda web si eso es importante.

ACTUALIZACIÓN: 5 años después, surgió la necesidad de nuevo. En aquel entonces utilicé Awesomium para mostrar el navegador web en mi programa, tbh, no recuerdo cómo fue, pero tampoco recuerdo que sea un verdadero dolor.

Hoy, sin embargo, quería volver a usarlo y veo que el código se había cerrado y ahora es comercial. Lo intentamos, nos topamos con un obstáculo, no pudimos cambiar el código para que funcionase de la manera que queríamos, así que seguimos la ruta de código abierto con CEF y CefSharp , pudimos ver que el código hacía el trabajo mucho más fácil y menos vudú (ffs, awesomium incluso ofuscar su código por lo que no pude entender lo que estoy haciendo mal).

Básicamente, Awesomium es genial si quieres pagar 2900 $ y no necesitas renderizar fuera de la pantalla, pero CEF es mucho más poderoso y puede cambiar el código para adaptarlo a tus necesidades.

PD. Le dimos a CefGlue una prueba de 5 minutos, no funcionó de inmediato, así que nos mudamos a CefSharp, que funcionó de inmediato, esto es lo mejor de dos marcos de código abierto que compiten.



Eche un vistazo a la biblioteca DotNetBrowser . Proporciona controles de navegador basados ​​en Chromium WPF y WinForms, que son bastante fáciles de incorporar a la aplicación .NET. Es compatible con todos los estándares web modernos, incluidos HTML5, CSS3 y JavaScript. La página renderizada se ve exactamente como en Google Chrome.

La biblioteca hereda la arquitectura multiprocesamiento de Chromium: cada página web se procesa en un proceso separado de Chromium y la aplicación continuará funcionando incluso después de que el plugin se cuelgue o se produzca cualquier otro error inesperado en la página web.

Aquí hay algunas otras características útiles, proporcionadas por DotNetBrowser: es posible escuchar cargar eventos, manejar la actividad de red, configurar el proxy, simular acciones de usuario, trabajar con cookies, acceder y modificar DOM, escuchar eventos DOM, invocar JavaScript desde .NET y viceversa, use la cámara web y el micrófono en la página web, configure la comunicación basada en WebRTC, y more .

Consulte la Referencia de API para más detalles.

El siguiente fragmento de código muestra cómo crear un BrowserView, incrustarlo en un Formulario y cargar una URL:

using System.Windows.Forms; using DotNetBrowser; using DotNetBrowser.WinForms; namespace WinForms.DotNetBrowser { public partial class Form1 : Form { public Form1() { InitializeComponent(); BrowserView browserView = new WinFormsBrowserView(); Controls.Add((Control) browserView); browserView.Browser.LoadURL("http://www.youtube.com"); } } }

Una vez que ejecutas el ejemplo anterior obtendrás el siguiente resultado:

La biblioteca es comercial, sin embargo, es gratuita para uso en proyectos académicos y de código abierto. Las licencias comerciales incluyen paquetes de soporte para diferentes tamaños de equipo. También es posible comprar el código fuente de la biblioteca.

Además de su propia página, el componente está disponible como paquete NuGet y como paquete VSIX en Visual Studio Marketplace.



He tenido suerte al usar GeckoFX en una aplicación de formulario C # win. Aquí está el artículo de inicio , que explica qué dependencias necesitará instalar para ponerlo en funcionamiento.


No estoy seguro de que haya tantas alternativas, aunque http://webkitdotnet.sourceforge.net/ es una. Creo que es un control de WinForms en lugar de uno de WPF, por lo que podría necesitar saltar un poco para que funcione.


Pagar mi nuevo proyecto: https://github.com/chillitom/CefSharp

Esto lleva el Marco incrustado de Chromium a .Net / C #. Vea la página de Github para fuente, binarios y ejemplos.

caracteristicas:

  • un control de navegador con comandos de navegación
  • Eventos INotifyPropertyChanged
  • EjecutarJavascript
  • Registre sus propios manejadores de esquema / protocolo
  • interceptar descargas de recursos
  • enlazar objetos CLR en el contexto JavaScript de Chromium.

Todavía está en las etapas pre alfa, por lo que todos los comentarios se agradecieron.


Si está utilizando Windows Forms, es más fácil con el control incorporado en WebBrowser. Si también está utilizando WPF, está bien utilizar el control WebBrowser desde WPF. Sin embargo, el comportamiento de WPF y WinForms es diferente.

En WPF, cada píxel se representa de forma diferente que en WinForms. Puede mostrar contenido sobre un control WebBrowser usando este método:

http://karlshifflett.wordpress.com/2009/06/13/wpf-float-buttons-over-web-browser-control/

Sin embargo, si desea crear una ventana personalizada y mostrar un control WebBrowser sobre una ventana transparente , ni siquiera muestra el control WebBrowser. Hay algunas soluciones, pero la mayoría son complicadas. Demonios, incluso uno recomendó dibujar una interfaz de usuario WPF falsa detrás de WinForms. Códigos pobremente acoplados y más sphagetti.

He estado intentando esto por un día entero. Estos son todos los recursos que reuní sobre esto. La siguiente tarea para usted es recopilarlos y comprender las cosas. Esto te pone en el mismo barco que yo.

WPF WebBrowser (3.5 SP1) Siempre en la parte superior: otra sugerencia para mostrar HTML en WPF

http://blogs.msdn.com/b/changov/archive/2009/01/19/webbrowser-control-on-transparent-wpf-window.aspx

http://msdn.microsoft.com/en-us/library/ms742522.aspx

http://www.neowin.net/forum/topic/646970-c%23-wpf-window-with-transparency-makes-windowsformshost-disappear/

Actualmente, he renunciado al control WebBrowser y me voy para el proyecto Awesomium. Tratar de hacer que funcione es otra molestia ya que los códigos están distribuidos en diferentes versiones de .NET. Si alguno de ustedes tuvo un poco de suerte, por favor compártelo aquí.

También puede ver este proyecto para controles más fáciles de usar para navegadores web.

http://www.khrona.com/products/awesomium/

Una vez más, WinForms no tiene problemas con el control WebBrowser, WPF tiene innumerables y MS no está dispuesto a reparar las cosas antes.