2009-08-02 84 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

相關問題