Pregunta

Digamos que estoy loco y quiero poner en práctica un HTML básico motor de renderizado con C #. Me gustaría utilizar WPF Controls para mostrar el diseño HTML.

Si bien no hay nada que ganar con esta idea, todavía quiero probarlo! Entonces, ¿qué bibliotecas, proyectos y documentación me ayudarían a este hecho?

¿Fue útil?

Solución

Dado que las capacidades de WPF XAML son un superconjunto de las capacidades de HTML, más o menos todo lo que necesita hacer es asignar el uno al otro.

Si la entrada es XHTML puede simplemente usar XSLT o LINQ to XML para obtener los datos.

Si utiliza XSLT que va a terminar con un XAML que analizar sintácticamente con XamlReader.Parse () para obtener un UIElement se puede añadir a su ventana u otro contenedor de WPF. Esto es probablemente más trabajo que el uso de LINQ-a-XML XSLT porque es relativamente limitada.

Si utiliza LINQ to XML se puede elegir para producir XAML y luego analizarlo como en el caso de XSLT, o simplemente puede crear el árbol de objetos directamente. Si crea XAML utilizando LINQ to XML, que iba a escribir el código de traducción real en VB.NET en lugar de C #, que es mi idioma preferido normal. "Literal XML" sintaxis de VB.NET hace que una parte del trabajo más fácil.

Si la entrada es HTML arbitrario y no XHTML, yo uso una biblioteca de terceros para convertirlo en XHTML y trabajar desde allí. El manejo de todo el análisis de la extrañeza de HTML es mucho trabajo y, probablemente, en su mayoría sin relación a su objetivo real.

Si lo que desea es mostrar HTML sin convertirlo en objetos de WPF, puede utilizar el control Frame.

Otros consejos

representación HTML será fácil simplemente convertir a archivo XAML y hacer que debe ser bastante rápido. Obtendrá un navegador acelerada HW con hermosa zoom y fuentes.

Pero, ¿cómo manejar css - necesitará para crear estilos (puaj)? DHTML, HTML 5 y Java Script .. Tantas páginas ahora requieren estos thinsg usted no puede siquiera lo mire.

La forma más fácil para Java script es utilizar el analizador de todo el mundo utiliza, puede haber una mejor manera (y Java Script para compiladores CIL?)

html analizadores, con un mapeo escrito a las alternativas xaml, interesante ... Tal vez se puede utilizar antlr para el analizador léxico http://www.antlr.org/ , más específicamente aquí una CodeProject interesante proyecto http://www.codeproject.com/KB/cs/TagBasedHtmlParser.aspx , tal vez podría intentar transformar su html en XAML, lo que sería muy interesante:)

Creo que este proyecto es exactamente lo que pretende lograr:
https://htmlrenderer.codeplex.com/
Tal vez usted podría trabajar en él y añadir HTML 5 y CSS 3 apoyo!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top