2009-08-02 15 views
15

私はWinFormsアプリケーションを持っています。これは.net 3.5上で動作します。このアプリケーションは、文書全体とインラインCSSスタイルシート(head要素内)を含むHTMLをオンザフライで生成します。WinFormsアプリケーションでHTMLをレンダリングする最良の方法は?

私はWebBrowserコントロールを使用していて、生成されたHTMLにbrowser.DocumentTextを設定していますが、body要素にスタイルを適切に適用していないようです(CSSではbackground-colorを#000000に設定しましたが、背景はまだ白です)。

私は、C#(すなわち完全に管理されたHTMLレンダラー)で比較的シンプルなHTMLをレンダリングするいくつかの選択肢、またはb)Webブラウザーコントロールを使用してHTMLをレンダリングする最良の方法-cssを実行し、ハードドライブ上の一時ファイルを使用しないでください。

編集: CSS非適用の問題は別の問題でした。私は実際のCSSをCDATAブロックに入れました。これは正しく適用されないようです。それは今修正されていますが、質問自体は依然として立っています。

+5

タイトルに "最高"という単語があるので、この質問を閉じるのはばかげていました。それは良い質問であり、それは私を助けました。 – Bitterblue

答えて

3

ステイ組み込みのWebブラウザーで編集することができます。他の回答のHtmlRendererは素晴らしいですが、イメージをレンダリングします。

+7

HtmlRendererは更新され、テキスト選択、コピー貼り付けなどが完全サポートされています。 – Arthur

14

管理対象のHTMLレンダラーの場合は、GitHubのHtmlRendererを参照してください。

+0

これはセクシーに見え、試してみることにしました。 –

+1

[CodePlex](http://htmlrenderer.codeplex.com/)に新しいバージョンがあり、開発がそこに移動したようです。本当に素晴らしいコンポーネントです。 – RoadBump

+0

これは、追加のCOMオーバーヘッドがあり、スレッドアパートメントモデル[Read:BackgroundWorkerスレッドから起動されたときにWebBrowserを動作させることができませんでした]でうまく動作しない内部WebBrowserよりも優れています。コンポーネントはわずか200Kです! –

0

あなたはビューエンジンを使用して調べることができます。 ほとんどのビューエンジンはNHamlとnvelocity両方がスタンドアロン

http://code.google.com/p/nhaml/

http://www.castleproject.org/others/nvelocity/index.html

と私はスパークが同様に可能と仮定を使用することができ、たとえば、スタンドアロンのAPI方式で

を作業することができます

http://dev.dejardin.org/

+0

私はそれらがうまくいくとは思わない - 私の理解には、テンプレートからHTMLを作成する。私はスクリーン上にHTMLをレンダリングするものを探しています。ブラウザ。 –

0

私が開発している何を求めていた:「は、C#に比較的単純なHTMLをレンダリング」します「完全に管理さHTMLレンダラ」、。これは、CSSのサブセットをサポートしています。は、インラインCSSスタイルシート(head要素内)で指定することができます "です。

詳細については、the ModelText HTML controlを参照してください。

関連する問題