2009-08-02 87 views
15

我有一个运行在.net 3.5上的WinForms应用程序。此应用程序可以随时生成HTML,其中包括完整的文档,以及inline-CSS-Stylesheet(在head元素中)。在WinForms应用程序中呈现HTML的最佳方式?

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

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

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

+5

仅仅因为它在标题中有“最好”这个词而关闭这个问题是愚蠢的!这是一个很好的问题,它帮助了我。 – Bitterblue 2014-01-28 06:36:34

回答

3

停留用内置的WebBrowser编辑。来自其他答案的HtmlRenderer很棒,但呈现图像。

14

对于托管的HTML渲染器,请参阅GitHub上的HtmlRenderer

+0

现在看起来很性感,会试试看。 – 2009-08-02 10:29:49

+1

[CodePlex](http://htmlrenderer.codeplex.com/)有更新的版本,似乎开发移到了那里。一个伟大的组件真的。 – RoadBump 2013-03-07 19:27:07

+0

这优于内部WebBrowser,它具有额外的COM开销,并且不能很好地与线程单元模型兼容[阅读:从BackgroundWorker线程启动时无法使WebBrowser工作]。而组件只有200K! – 2013-05-10 17:06:39

0

我开发什么你问了:一个“完全管理HTML渲染”,这将“在C#呈现相对简单的HTML”。它支持CSS的一个子集,您可以“”在内联CSS样式表(头元素内部)中指定“。请参阅the ModelText HTML control

相关问题