Frage

Lassen Sie sich sagen, ich bin verrückt, und ich möchte ein einfaches HTML-Rendering-Engine mit c # implementieren. Ich möchte WPF-Steuerelemente verwenden, um die HTML-Layout angezeigt werden soll.

Während es nichts mit einer solchen Idee zu gewinnen, ich will noch, um es auszuprobieren! Also, was Bibliotheken, Projekte und Dokumentation würden mir helfen, dies getan?

War es hilfreich?

Lösung

Da WPF XAML Fähigkeiten sind ein Ober von HTML-Fähigkeiten, so ziemlich alles, werden Sie tun müssen, ist die eine auf den anderen Karte.

Wenn Sie Ihre Eingabe XHTML können Sie einfach XSLT oder LINQ-to-XML die Daten zu erhalten.

Wenn Sie XSLT verwenden, werden Sie mit einem XAML am Ende, dass Sie mit XamlReader.Parse () analysieren eine UIElement bekommen Sie Ihre Fenster oder anderen WPF Container hinzufügen. Dies ist wahrscheinlich mehr Arbeit als mit LINQ-to-XML weil XSLT ist relativ begrenzt.

Wenn Sie LINQ-to-XML Sie können wählen, XAML zu erzeugen und es dann wie im XSLT Fall zu analysieren, oder Sie können nur die Objektbaumstruktur direkt erstellen. Wenn Sie XAML LINQ-to-XML erstellen, würde ich die eigentliche Übersetzung Code in VB.NET anstelle von C # schreiben, die meine normale bevorzugte Sprache ist. VB.NET des "XML Literal" Syntax macht, dass ein Teil der Arbeit zu erleichtern.

Wenn Sie Ihre Eingabe beliebige HTML- und nicht XHTML, würde ich einen Dritten Bibliothek verwenden, um XHTML und von dort Arbeit zu konvertieren. Umgang mit allen Parsing Fremdheit HTML eine Menge Arbeit und wahrscheinlich meist in keinem Zusammenhang mit Ihrem eigentlichen Ziel.

Wenn Sie nur HTML angezeigt werden sollen, ohne es in WPF-Objekte zu drehen, können Sie das Frame-Steuerelement verwenden.

Andere Tipps

Rendering html wird einfach nur zu XAML-Datei konvertieren und machen sollte ziemlich schnell sein. Sie erhalten eine HW-Browser beschleunigt mit schönem Zoom und Schriftart.

Aber wie Sie CSS gehe - Sie müssen Stile erstellen (Yuck)? DHTML, HTML5 und Java-Script .. So viele Seiten erfordern jetzt diese thinsg Sie es sogar sehen kann nicht.

Die einfache Lösung für Java-Script ist die Parser aller Anwendungen zu verwenden, kann es eine bessere Art und Weise (und Java-Skript CIL-Compiler?)

HTML-Parser, mit einer typisierten Zuordnung zu XAML-Alternativen, interessant ... vielleicht können Sie antlr für den Parser verwenden Lexer http://www.antlr.org/ , genauer gesagt herer ein interessantes Codeproject, Projekt http://www.codeproject.com/KB/cs/TagBasedHtmlParser.aspx , könnten Sie vielleicht Ihren hTML-Code in xAML versuchen zu verwandeln, das wäre durchaus interessant sein:)

Ich denke, das Projekt ist genau das, was Sie erreichen wollen:
https://htmlrenderer.codeplex.com/
Vielleicht könnten Sie daran arbeiten und HTML 5 und CSS 3 Unterstützung addieren!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top