/// <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()); }
/// <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()); }
/// <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()); }