質問
のは、私はクレイジーだと私は、C#での基本的なHTMLレンダリングエンジンを実装したいとしましょう。 私は、WPFは、HTMLのレイアウトを表示するには、コントロールを使用したいと思います。
そのようなアイデアを得るためには何もありませんが、、私はまだそれを試してみたいです!だから、ライブラリは、プロジェクトやドキュメントが、私はこれが行わ得るのを助けるだろうか?
解決
あなたが行う必要がありますすべては、他の1つにマップされます。
あなたの入力がXHTMLの場合は、あなたは、単にデータを取得するために、XSLTやLINQからXMLを使用することができます。
あなたはXSLTを使用する場合は、あなたがXamlReader.Parseで解析XAMLで終わるだろう()のUIElementを取得するには、あなたのウィンドウまたは他のWPFのコンテナに追加することができます。これはおそらくXSLTが比較的限られているので、LINQツーXMLを使用するよりも仕事です。
あなたはXAMLを生成して、XSLTの場合のようにそれを解析することを選択することができ、またはあなただけの直接オブジェクトツリーを作成することができますLINQからXMLを使用している場合。あなたはLINQからXMLを使用してXAMLを作成する場合、私は私の通常の優先言語である実際のVB.NETでの変換コードの代わりに、C#のを記述します。 VB.NETの「XMLリテラル」構文は、ジョブの一部が容易になります。
あなたの入力は任意のHTMLとXHTMLでない場合には、、私はそこからXHTMLと仕事に変換するサードパーティのライブラリを使用します。 HTMLの構文解析ストレンジネスのすべてを処理する多くの作業と実際の目標に、おそらくほとんど無関係である。
あなただけのWPFオブジェクトにそれを回すことなく、HTMLを表示したい場合は、フレームコントロールを使用することができます。
他のヒント
HTMLレンダリングはちょうど非常に高速である必要があり、XAMLファイルに変換し、レンダリング簡単になります。あなたは美しいズームとフォントのHW加速ブラウザを取得します。
しかし、どのようにCSSを扱うか - あなたは(ウエッ)スタイルを作成する必要がありますか? DHTMLは、HTML5およびJavaスクリプトが...だから、多くのページは現在、あなたもそれを見るカントthinsgこれらを必要としています。
Javaスクリプトのための簡単な方法は、より良い方法があるかもしれない、パーサの誰もが使用しています使用することです(CILコンパイラへとJavaスクリプト?)
HTMLパーサは、XAMLの選択肢に入力されたマッピングで、面白い...おそらくあなたは、パーサレクサーためANTLR使用することができますhttp://www.antlr.org/ を、より具体的にHERESに興味深いCodeProjectの、プロジェクト<のhref = "http://www.codeproject.com/KB/cs/TagBasedHtmlParser.aspx" のrel = "nofollowをnoreferrer "> http://www.codeproject.com/KB/cs/TagBasedHtmlParser.aspx を、あなたはおそらく、非常に興味深いものになるだろうこれは、XAMLにあなたのhtmlを変換しようとすることができ:)
私はこのプロジェクトはあなたが達成することを目指しまさにだと思います。
https://htmlrenderer.codeplex.com/ の
たぶん、あなたはそれに取り組み、HTML 5やCSS 3のサポートを追加することができます!