我正在使用WebBrowser控件并显示文本,但它没有使用链接的CSS,它只显示为纯文本。 我正在填充它
webBrowser1.DocumentText = some_text;
在some_text中<link rel="stylesheet"href="PF.css">
以及html的其余部分
当我将some_text保存到文件并让WebBrowser导航到它时,它可以正常工作
webBrowser1.Navigate(@"C:\test.html");
和PF.css位于C:\
我把PF.css放在我的项目文件夹中,其中所有的类文件都是。
如何让WebBrowser控件使用/显示我链接的css文件? 我不想将我的字符串保存到文件然后导航到它。
感谢
答案 0 :(得分:1)
mshtml.HTMLDocument CurrentDocument = (mshtml.HTMLDocument)webBrowser1.Document.DomDocument;
mshtml.IHTMLStyleSheet styleSheet = CurrentDocument.createStyleSheet("", 0);
StreamReader streamReader = new StreamReader(@"C:\PF.css");
string text = streamReader.ReadToEnd();
streamReader.Close();
styleSheet.cssText = text;
一种krapy方式来做到这一点,但我读到的所有内容似乎都指向webbrowser控件无法执行css,除非你导航到一个文件/ url并且它包含在那里。 顺便说一句,你必须添加一个参考Microsoft.mshtml。
也许此控件的未来版本可以处理链接的样式表...
答案 1 :(得分:0)
您可以将内联样式用作..
<html>
<head>
<style>
// all my style here
</style>
</head>
<body>
..
..
</body>
</html>
答案 2 :(得分:0)
如果将它放在项目文件夹中,是指您的bin
文件夹,还是包含.sln
文件的文件夹?如果是后者,则必须将其放在与可执行文件相同的文件夹中(例如bin/Debug/PF.css
,bin/Release/PF.css
等)。
或者,您可以使用<style type="text/css"><!-- CSS Here --></style>
将其嵌入HTML中,并将评论替换为CSS。如果您不想在some_text
的任何地方对其进行硬编码,则可以通过加载PF.css
来动态替换它:
using (StreamReader sr = new StreamReader("PF.css"))
{
some_text = String.Format(some_text, sr.ReadToEnd());
}
该示例假设some_text
包含以下内容:
<style type="text/css">
{0}
</style>