2012-10-04 30 views
10

Estoy desarrollando una aplicación win-form que a veces necesita mostrar un formulario "emergente" que muestra una parte de una página web en internet (HTML). Me estoy poniendo el código HTML de la página utilizando una petición web clásico:Mostrar HTML en un winform

var serviceRequest = new WebClient(); 
var response = serviceRequest.DownloadString(new Uri("www.something.com")); 

que ya han tratado de utilizar el navegador de control web que funciona muy bien, pero como saben hay varios usarlo como tema está basado en un objeto COM. (No puedo crear dinámicamente otro formulario que contenga el control del navegador web sin crear un hilo STA, etc.)

Todo lo que necesito es "contenedor" donde pueda inyectar el HTML que quiero mostrar.

¿Alguna sugerencia?

muchas gracias

Respuesta

8

intenta utilizar incorporado en el control WebBrowser.

Referencias en CodeProject:

Para Gestionado procesamiento HTML, ver Professional HTML Renderer

Para el procesamiento HTML dinámico, ver Show Dynamic HTML in WinForm Applications

+1

que ya han probado el HtmlRenderer pero parece que no muestra el css página correctamente. + 1 de todos modos para la buena sugerencia El segundo enlace utiliza un control WebBrowser que no me gustaría usar como se ha explicado en la pregunta –

+0

Me temo que no hay forma de dejar de lado la aplicación de HTML a WinForms y Professional HTMl Renderer es una buena fuente de información para su caso, pero debe consultar también este enlace en http://www.codeproject.com/ Artículos/12172/An-extended-RichTextBox-to-save-and-load-quot-HTML –

+0

el HTML de renderizado no funciona con el último CSS :-( –

18

Puede navegador del usuario control.It puede inyectar todo el código HTML directamente.

webBrowser1.DocumentText = "<html>hello <script>alert('hi');</script></html>"; 
+1

como puedes adivinar de mi pregunta, ya lo he intentado. Por favor, lea la pregunta –

+0

¡funciona muy bien! gracias ... no creo que haya un objeto así en winforms. – kirk

0
webBrowser1.Document.Write(yourHtmlText); 
Cuestiones relacionadas