Question

Disons que je suis fou et je veux mettre en place un moteur de rendu HTML de base avec c #. Je voudrais utiliser WPF Controls pour afficher la mise en page HTML.

Bien qu'il n'y ait rien à gagner avec une telle idée, je veux toujours essayer! Alors, que les bibliothèques, les projets et la documentation me aider à obtenir ce fait?

Était-ce utile?

La solution

Étant donné que les capacités de WPF XAML sont plus nombreuses que les capacités de HTML, à peu près tout ce que vous devez faire est de cartographier l'un à l'autre.

Si votre entrée est XHTML vous pouvez simplement utiliser XSLT ou LINQ à XML pour obtenir les données.

Si vous utilisez XSLT, vous finirez avec un XAML que vous analysez avec XamlReader.Parse () pour obtenir un UIElement vous pouvez ajouter à votre fenêtre ou un autre récipient WPF. Ceci est probablement plus de travail que d'utiliser LINQ à XML parce que XSLT est relativement limitée.

Si vous utilisez LINQ à XML, vous pouvez choisir de produire XAML puis l'analyser comme dans le cas XSLT, ou vous pouvez simplement créer l'arborescence d'objets directement. Si vous créez XAML en utilisant LINQ à XML, j'écrire le code de traduction réelle en VB.NET au lieu de C # qui est ma langue préférée normale. syntaxe « XML littérales » fait de VB.NET cette partie de la tâche plus facile.

Si votre entrée est HTML arbitraire et non XHTML, j'utilise une bibliothèque tierce partie pour le convertir en XHTML et le travail à partir de là. Manipulation toute la bizarrerie de l'analyse syntaxique de HTML est beaucoup de travail et probablement la plupart du temps sans rapport avec votre objectif réel.

Si vous voulez juste afficher HTML sans le transformer en objets WPF, vous pouvez utiliser le contrôle Frame.

Autres conseils

Le rendu HTML sera facile de simplement convertir en fichier XAML et rendu devrait être assez rapide. Vous obtiendrez un navigateur accéléré HW avec zoom beau et polices.

Mais comment voulez-vous gérer css - vous devez créer des styles (beurk)? DHTML, HTML5 et Java script .. Tant de pages exigent maintenant ces thinsg vous ne pouvez pas même l'afficher.

La méthode simple pour le script Java est d'utiliser tout le monde utilise l'analyseur, il peut y avoir une meilleure façon (et Java script pour les compilateurs CIL?)

html parseurs, avec une cartographie typée à des alternatives XAML, intéressant ... vous pouvez peut-être utiliser antlr pour l'analyseur lexer http://www.antlr.org/ , plus spécifiquement un Heres CodeProject intéressant, projet http://www.codeproject.com/KB/cs/TagBasedHtmlParser.aspx , vous pouvez peut-être essayer de transformer votre code html en XAML, ce qui serait tout à fait intéressant:)

Je pense que ce projet est exactement ce que vous cherchez à atteindre:
https://htmlrenderer.codeplex.com/
Peut-être que vous pourriez travailler et ajouter HTML 5 et CSS 3 support!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top