1

我有一个富文本框,它将从服务器加载文本。从服务器端我想添加将生成文本框的格式化标签。例如:

result = result.Replace("[b]", @"{\b ").Replace("[/b]", "}").Replace("[br]", @"{\line}").Replace("[i]", @"{\i ").Replace("[/i]", "}");
TextBox1.Rtf = @"{\rtf1\ansi " + result + "}";

然后我可以输入:

Hello [b]this is in bold[/b] and [i] this is in [/i]

因此,它将被替换为所需的 rtf1\ansi 格式,并相应地以粗体和斜体显示所需的文本。

我想实现下划线,甚至可能是一组颜色。

我试过{\u underlin }了,但似乎没有用...

4

1 回答 1

0

请看一下我创建的简单示例。将整个文本附加到您的 RTF 属性。

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}
{\colortbl ;\red255\green0\blue0;\red0\green128\blue0;}
This is \cf1 \ulwave\ulc2 underlined \ulnone\cf0 text \par
}

我找不到直接使用 RTF 属性的非常好的参考,但是有很多示例首先执行选择,然后应用所需的属性。我尝试了其中的一些示例,然后检查了生成的 RTF 文本。这是了解 Richtextbox 如何处理 RTF 字符串的简单方法。希望这个小技巧也能帮助你:)。

请注意,在第 2 行,我放置了一个包含 2 种颜色的颜色表,即用分号分隔的 2 个 RGB 值。您可以在此处添加您想要的颜色并将它们称为 1,2 等。我相信 0 是默认颜色并且是白色的。

于 2013-04-19T12:10:56.147 回答