C#彩虹文字(十六进制格式)

时间:2012-01-11 07:37:51

标签: c# colors browser hex

所以我使用的是C#WebBrowser控件,并尝试将字符串转换为HTML / CSS彩虹。目前,我只是以十六进制格式随机生成1000种颜色,并遍历字符串中的每个字符,为每个字符添加span样式color:(hex value)。它有效,但我希望颜色合并在一起,以获得更多的彩虹效果。这可能吗?这是我目前的职能:

    public static string Rainbow(string text)
    {
        int numColors = 1000;
        var colors = new List<string>();
        var random = new Random();
        for (int i = 0; i < numColors; i++)
        {
            colors.Add(String.Format("#{0:X6}", random.Next(0x1000000)));
        }

        string rainbow = "";
        int index = 0;
        foreach (char c in text)
        {
            rainbow += String.Format("<span style='color: {0};'>{1}</span>", colors[index], c.ToString());

            if (index > numColors)
                index = 0;
            else
                index++;
        }

        return rainbow;
    }

2 个答案:

答案 0 :(得分:1)

简单;不要使用Random

这样的事情可能会帮助你开始:

for (int i = 0; i < 256; i++)
    {
        colors.Add(String.Format("#{0:X2}{1:X2}00", i, 255-i));
    }

以255步从绿色变为红色。

HTH!

答案 1 :(得分:1)

您可以使用hsv转换rgb功能。在这里您可以找到描述:

How do I get a rainbow color gradient in C#?