动态更改标签文本的属性

本文关键字:属性 文本 标签 动态 | 更新日期: 2023-09-27 18:15:32

我有一个带有"野字符"的文本,比如"@ red text",其中@A是红色的符号。我需要替换@A与一些功能(或类似的东西),所以只要有@A在文本中,文本字体变成红色。我有几个颜色(@B, @C…),所以对于每一个我都需要做同样的事情,只是不同的颜色。

所以,"@ assome红色文本@BSome绿色文本"将分别被涂成红色和绿色(在So上找不到文本着色)。

任何想法?

谢谢。

动态更改标签文本的属性

我要做的是捕获标签的PreRender事件并测试YourLabel.Text.Substring(0, 1),如果这是@号(@),那么有条件地测试(我会使用开关)第二个字符。然后,您可以获得没有@A的字符串的其余部分,然后设置Label的文本,并根据属性字符进行格式化。

像这样:

protected void YourLabel_PreRender(object sender, EventArgs e)
{
    string LabelText = YourLabel.Text;
    bool NewForeColor = false;
    if (LabelText.Left(0, 1) == "@")
    {
        switch(LabelText.Substring(1, 1))
        {
            case "A":
                YourLabel.ForeColor = System.Drawing.Color.Magenta;
                NewForeColor = true;
                break;
            case "B":
                // you get the idea
                break;
        }
        if (NewForeColor)
            YourLabel.Text = LabelText.Substring(2, LabelText.Length - 2);
    }
}

编辑:这是未经测试的代码,但您应该了解逻辑的总体思路