十六进制颜色表示

时间:2016-08-04 07:10:56

标签: c# html hex

关注this answer我写了一些代码测试。

我尝试使用颜色'903C39'(类似于红色)放置一些文本,然后在Web浏览器中显示它并将其粘贴到富文本框中。但如果我写:

<font color='#903C39'> Blablabla </font>

显示灰色文本。但如果我将颜色稍微降低到'903C30',则会出现颜色'红色':

colors

这是正常的吗?

我尝试过的所有代码都是:

string html = @"<font color='#903C30' size='1,5' face='Arial'>      903C30</font> <br> <font color='#903C39' size='1,5' face='Arial'>       903C39 </font>";
                    var webBrowser = new WebBrowser();
        webBrowser.CreateControl(); // only if needed
        webBrowser.DocumentText = html;
        while (webBrowser.DocumentText != html)
            Application.DoEvents();
        webBrowser.Document.ExecCommand("SelectAll", false, null);
        webBrowser.Document.ExecCommand("Copy", false, null);
        richTextBox1.Paste(); 

只是拥有一个带有默认名称的webBrowser和RichTextBox。

2 个答案:

答案 0 :(得分:1)

这只是webbrowser如何将其HTML编码为Rich Text的结果。

创建富文本时,RTF流中会插入默认的16色colortable {\colortbl\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}

使用的任何颜色都映射到此颜色映射中最近的颜色。 903C30恰好接近红色而 903C39更接近灰色。

如果您想要准确的颜色,则必须直接创建RTF流,而无需借助WebBrowser中的复制/粘贴作为中介。

答案 1 :(得分:0)

HTML5不支持font标记,而是使用span

<span style='color:#903C30'> Blablabla </span>