将前景色属性动态分配给字符串

时间:2011-09-21 10:23:02

标签: c# asp.net

我有一个标签,并使用以下代码动态分配前景色:

string xCol = "#F8951D";
Color c = System.Drawing.ColorTranslator.FromHtml(xCol);
string abc = Convert.ToString(c);
string[] col = abc.Split();
for (int k = 1; k <= 4; k++)
{
    col[k] = col[k].Replace("A", "");
    col[k] = col[k].Replace("=", "");
    col[k] = col[k].Replace("[", "");
    col[k] = col[k].Replace(",", "");
    col[k] = col[k].Replace("R", "");
    col[k] = col[k].Replace("G", "");
    col[k] = col[k].Replace("B", "");
    col[k] = col[k].Replace("]", "");
    if (k == 1)
    { int abc1 = Convert.ToInt32(col[k]); Session["abc1"] = abc1; }
    else if (k == 2)
    { int abc2 = Convert.ToInt32(col[k]); Session["abc2"] = abc2; }
    else if (k == 3)
    { int abc3 = Convert.ToInt32(col[k]); Session["abc3"] = abc3; }
    else if (k == 4)
    { int abc4 = Convert.ToInt32(col[k]); Session["abc4"] = abc4; }
}

int c1 = Convert.ToInt32(Session["abc1"].ToString());
int c2 = Convert.ToInt32(Session["abc2"].ToString());
int c3 = Convert.ToInt32(Session["abc3"].ToString());
int c4 = Convert.ToInt32(Session["abc4"].ToString());
lblDept.ForeColor = Color.FromArgb(c1,c2,c3,c4);

如何使用a,r,g,b组件动态地为字符串指定前景色属性?

是否可以使用string strColor = Color.FromArgb(c1,c2,c3,c4);进行分配? 如何动态地将颜色属性设置为字符串?

1 个答案:

答案 0 :(得分:0)

无法为string分配颜色,.NET string是一种数据类型,它不包含格式,但只包含可用于呈现某些文本的字符集合。您的问题就像将字体分配给整数,整数int只包含数字,如1或150,没有其他属性。

这样说,如果你的应用程序的用户界面(基于Windows或基于Web)你想使用特定的Font(所以字符系列,如Arial,大小和颜色)渲染一些文本,你应该使用像标签或TextBox这样的UI控件,它通常允许您在.Text属性中设置文本内容,并允许您通过使用其他属性来操作样式。但是这样的UI控件不是字符串,是一些逻辑和图形的容器,用于呈现具有特定格式的字符串。