在WinForms应用程序中呈现HTML的最佳方法?

时间:2009-08-02 07:08:54

标签: c# html .net winforms webbrowser-control

我有一个WinForms应用程序,在.net 3.5上运行。此应用程序动态生成HTML,其中包括完整的文档,以及内联CSS样式表(在head元素内)。

我正在使用WebBrowser控件并将browser.DocumentText设置为我生成的HTML,但这似乎没有在body元素上正确应用样式(我在CSS中将background-color设置为#000000,但是背景还是白的。)

我想知道a)是否有一些替代方法可以在C#中呈现相对简单的HTML(即完全托管的HTML呈现器)或b)使用WebBrowser控件呈现HTML的最佳方式,包括正确处理内联 - css并且不使用硬盘驱动器上的临时文件。

编辑:CSS-not-applied问题是一个单独的问题。我把我的实际CSS放在CDATA块中,这似乎导致它无法正确应用。现在已经确定了,但问题本身仍然存在。

4 个答案:

答案 0 :(得分:14)

对于托管HTML呈现器,请参阅GitHub上的HtmlRenderer

答案 1 :(得分:3)

使用内置的WebBrowser。另一个答案中的HtmlRenderer很棒,但渲染图像。

答案 2 :(得分:0)

您可以考虑使用视图引擎。 大多数视图引擎可以独立的api方式工作

例如NHaml和nvelocity都可以单独使用

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

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

我认为Spark也可以

http://dev.dejardin.org/

答案 3 :(得分:0)

我开发了您要求的内容:“完全托管的HTML呈现器”,它将“在C#中呈现相对简单的HTML ”。它支持CSS的一个子集,您可以“在内联CSS样式表中指定(在head元素内)”。

有关详细信息,请参阅the ModelText HTML control