Esempio n. 1
0
        /// <summary>
        /// 添加灰度色标签
        /// </summary>
        /// <param name="Text">文字</param>
        /// <param name="isUnderline">是否要下划线</param>
        /// <returns></returns>
        private string AddGrayColorTag(string Text, bool isUnderline)
        {
            StringBuilder retVal = new StringBuilder();
            string        strTmp = "";

            int index;
            int intLen = Text.Replace("\r", "").Replace("\n", "").Length;
            int R, G, B;

            int i = 1;

            foreach (char chr in Text)
            {
                if ((int)chr == 10 || (int)chr == 13)
                {
                    retVal.Append(chr);
                }
                else
                {
                    index = (int)Math.Floor((double)(i * (ColorDefined.GetGrayColor().Count - 100) / intLen));

                    if (isUnderline)
                    {
                        strTmp = string.Format(_dicTagTemplate["Underline"], chr.ToString());
                    }
                    else
                    {
                        strTmp = chr.ToString();
                    }

                    index = index == 0 ? index++ : index;

                    R = ColorDefined.GetGrayColor()[index - 1 + 50][0];
                    G = ColorDefined.GetGrayColor()[index - 1 + 50][1];
                    B = ColorDefined.GetGrayColor()[index - 1 + 50][2];

                    retVal.Append(string.Format(_dicTagTemplate["Color"], ColorTranslator.ToHtml(Color.FromArgb(R, G, B)), strTmp));

                    i++;
                }
            }

            return(retVal.ToString());
        }
Esempio n. 2
0
        /// <summary>
        /// 返回预定义的几种颜色
        /// </summary>
        /// <param name="colorGroup">预定义颜色</param>
        /// <returns></returns>
        private static MColor[] GetPredefinedColor(ColorGroup colorGroup)
        {
            List <MColor> retVal = new List <MColor>();

            switch (colorGroup)
            {
            case ColorGroup.W3C16:
                foreach (string[] var in ColorDefined.GetW3C16Color())
                {
                    retVal.Add(new MColor(var[1], ColorTranslator.FromHtml(var[0])));
                }
                break;

            case ColorGroup.Safe216:
                foreach (string var in ColorDefined.GetSafe216Color())
                {
                    retVal.Add(new MColor(var, ColorTranslator.FromHtml(var)));
                }
                break;

            case ColorGroup.IE4_PreNamed:
                foreach (string[] var in ColorDefined.GetIE4_PreNamedColor())
                {
                    retVal.Add(new MColor(var[1], ColorTranslator.FromHtml(var[0])));
                }
                break;

            case ColorGroup.WIN:
                foreach (string var in ColorDefined.GetWINColor())
                {
                    retVal.Add(new MColor(var, Color.FromName(var)));
                }
                break;
            }

            return(retVal.ToArray());
        }
Esempio n. 3
0
        /// <summary>
        /// 添加动态颜色标签
        /// </summary>
        /// <param name="Text">文字</param>
        /// <param name="ColorCategories">文字颜色分类</param>
        /// <param name="isUnderline">是否要下划线</param>
        /// <returns></returns>
        private string AddDynamicColorTag(string Text, string ColorCategories, bool isUnderline)
        {
            StringBuilder retVal = new StringBuilder();
            string        strTmp = "";

            Random Rand = new Random(_Rand.Next());

            int           intIndexMax      = 0;
            int           intPreColorIndex = -1; //之前一个字符颜色下标
            int           intCurColorIndex = -1; //当前字符颜色下标
            List <string> lstColor         = new List <string>();

            switch (ColorCategories)
            {
            case "W3C16":
                foreach (string[] var in ColorDefined.GetW3C16Color())
                {
                    if (ColorTranslator.FromHtml(var[0]).ToArgb() != Color.White.ToArgb())
                    {
                        lstColor.Add(var[1]);
                    }
                }
                intIndexMax = lstColor.Count;
                break;

            case "Safe216":
                foreach (string var in ColorDefined.GetSafe216Color())
                {
                    if (ColorTranslator.FromHtml(var).ToArgb() != Color.White.ToArgb())
                    {
                        lstColor.Add(var);
                    }
                }
                intIndexMax = lstColor.Count;
                break;

            case "IE4_PreNamed":
                foreach (string[] var in ColorDefined.GetIE4_PreNamedColor())
                {
                    if (ColorTranslator.FromHtml(var[0]).ToArgb() != Color.White.ToArgb())
                    {
                        lstColor.Add(var[1]);
                    }
                }
                intIndexMax = lstColor.Count;
                break;

            case "WIN":
                foreach (string var in ColorDefined.GetWINColor())
                {
                    if (Color.FromArgb(Color.FromName(var).ToArgb()).ToArgb() != Color.White.ToArgb())
                    {
                        lstColor.Add(ColorTranslator.ToHtml(Color.FromArgb(Color.FromName(var).ToArgb())));
                    }
                }
                intIndexMax = lstColor.Count;
                break;
            }

            foreach (char chr in Text)
            {
                while (true)
                {
                    intCurColorIndex = Rand.Next(0, intIndexMax);

                    if (intCurColorIndex != intPreColorIndex)
                    {
                        if ((int)chr == 10 || (int)chr == 13)
                        {
                            retVal.Append(chr);
                        }
                        else
                        {
                            if (isUnderline)
                            {
                                strTmp = string.Format(_dicTagTemplate["Underline"], chr.ToString());
                            }
                            else
                            {
                                strTmp = chr.ToString();
                            }

                            retVal.Append(string.Format(_dicTagTemplate["Color"], lstColor[intCurColorIndex], strTmp));
                        }

                        intPreColorIndex = intCurColorIndex;

                        break;
                    }
                }
            }

            return(retVal.ToString());
        }