1
我使用「wild字符」的文本,如「@ARed text」,其中@A是紅色的符號。我需要用一些函數(或類似的東西)替換@A,所以無論文本中有@A,文本字體都會變成紅色。我有幾種顏色(@B,@C ...),所以每個人都需要做同樣的事情,只是顏色不同。動態更改標籤文本的屬性
因此,「@有些紅色文字@有些綠色文字」會分別着上紅色和綠色(在SO上找不到文字着色)。
任何想法?
謝謝。
我使用「wild字符」的文本,如「@ARed text」,其中@A是紅色的符號。我需要用一些函數(或類似的東西)替換@A,所以無論文本中有@A,文本字體都會變成紅色。我有幾種顏色(@B,@C ...),所以每個人都需要做同樣的事情,只是顏色不同。動態更改標籤文本的屬性
因此,「@有些紅色文字@有些綠色文字」會分別着上紅色和綠色(在SO上找不到文字着色)。
任何想法?
謝謝。
我會做的是捕獲PreRender
事件的標籤和YourLabel.Text.Substring(0, 1)
測試,如果這是符號(@),然後有條件地測試(我會使用開關)的第二個字符。然後你可以得到沒有@A
的字符串的其餘部分,然後設置標籤的文本,並根據屬性字符進行格式化。
事情是這樣的:
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);
}
}
編輯:這是未經測試的代碼,但你應該得到的邏輯的總體思路。
您可以通過標籤創建控件並捕獲渲染。在渲染你可以改變你的文字。 – Aristos