在winform上显示HTML

21

我正在开发一个Win-Form应用程序,需要显示一个"弹出"窗口,其中显示互联网上网页的一部分(HTML)。 我使用经典的Web请求获取页面的HTML:

 var serviceRequest = new WebClient();
 var response = serviceRequest.DownloadString(new Uri("www.something.com"));

我已经尝试使用网页浏览器控件,它可以很好地工作,但正如您所知道的,使用它存在一些问题,因为它是基于COM对象的。(我无法动态创建另一个包含Web浏览器控件的窗体,而不创建STA线程等)

我需要的只是一个“容器”,可以将我想要显示的HTML注入其中。

有任何建议吗?

非常感谢


2
注意:严格来说,这个问题是关于特别避免使用WinForms WebBrowser控件。然而,问题的通用标题已经促使回答推荐了该控件 - 并且搜索相关关键字的网络可能会将那些可以使用该控件的读者带到这里。 - mklement0
3个回答

38

您可以使用Web浏览器控件。它可以直接注入所有HTML代码。

webBrowser1.DocumentText = "<html>hello <script>alert('hi');</script></html>";

3
根据你的问题,我猜想你已经尝试过了。请阅读一下这个问题。 - Massimiliano Peluso
非常好用!谢谢..我没想到在winforms中会有这样的对象。 - kirk

15

1
我已经尝试过HtmlRenderer,但它似乎不能正确显示页面CSS。无论如何,感谢您的好建议。第二个链接使用了WebBrowser控件,但正如问题中所解释的那样,我不想使用它。 - Massimiliano Peluso
我很抱歉,除了将HTML呈现到WinForms应用程序中,没有其他方法。Professional HTML Renderer是您的情况的一个很好的信息来源,但您还应该参考此链接http://www.codeproject.com/Articles/12172/An-extended-RichTextBox-to-save-and-load-quot-HTML - Furqan Safdar
我找到了另一个链接http://www.webprogrammingblog.com/c-sharp-firefox-web-browser-geckofx/,来自这个链接https://dev59.com/olvUa4cB1Zd3GeqPuYZi - Furqan Safdar
这里还有一个HTML编辑器控件链接,但需要xhtml。我想改进HTML渲染器,你能提供一下你用过但没成功的HTML\CSS代码吗?谢谢。 - Arthur

0
webBrowser1.Document.Write(yourHtmlText);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接