<p>我正在寻找一种方法来在一个C#/。NET的标签显示多种颜色。例如标签显示的是一系列的CSV分隔值,每个取这取决于它们落入水桶的颜色。我宁愿不使用多个标签,因为值是变长,我不想与动态布局玩。有没有原生支持呢? P> </p>
<p>目前在.NET中没有原生控件做到这一点。最好的办法是写自己的用户控件(称之为RainbowLabel或东西)。通常你会直接有一个自定义标签控件继承标签,但由于无法获得多种颜色的文字在一个标签,你只从用户控件继承。 P> </p><p>有关渲染的文字,你的用户控件可以分割文字上的逗号,然后动态地加载每个块不同颜色的标签。一个更好的办法,但是,这是使用束带和MeasureString方法在Graphics命名空间中直接呈现文本到您的用户控件。 P> </p><p> .NET编写用户控件是真的不困难,而这种不寻常的问题是什么自定义用户控件是。 P> </p><p> <strong>更新 STRONG>:这里是你可以使用一个图片框呈现多种颜色的文本的简单方法: P><p>显然,这将打破,如果你在你的文字超过4逗号分隔的元素,但你的想法。此外,似乎有一个小故障的MeasureString,它使返回的宽度比所需的更广泛的一对夫妇的像素,所以多色串显得捉襟见肘了 - 你可能需要调整的部分。 P> </p><p>这应该很容易修改此代码的用户控件。 P> </p><p> <strong>注意 STRONG>:TextRenderer是一个较好的一类用于绘图和测量弦,因为它使用整数。 Graphics.DrawString和.MeasureString使用花车,所以你会在这里和那里下车,按一个像素的错误。 P> <p> <strong>更新 STRONG>:<em>忘记 em>的有关使用TextRenderer。这是狗缓慢。 P> <p>您可以尝试使用一个RichTextBox,这样你可以得到多种颜色的字符串,然后让只有它读取和删除边框。更改背景颜色一样的形式,它是,你可能逃脱它。 P> </p></em></strong></p></strong></p></strong></p>
<p>目前在.NET中没有原生控件做到这一点。最好的办法是写自己的用户控件(称之为RainbowLabel或东西)。通常你会直接有一个自定义标签控件继承标签,但由于无法获得多种颜色的文字在一个标签,你只从用户控件继承。 P> </p><p>有关渲染的文字,你的用户控件可以分割文字上的逗号,然后动态地加载每个块不同颜色的标签。一个更好的办法,但是,这是使用束带和MeasureString方法在Graphics命名空间中直接呈现文本到您的用户控件。 P> </p><p> .NET编写用户控件是真的不困难,而这种不寻常的问题是什么自定义用户控件是。 P> </p><p> <strong>更新 STRONG>:这里是你可以使用一个图片框呈现多种颜色的文本的简单方法: P><p>显然,这将打破,如果你在你的文字超过4逗号分隔的元素,但你的想法。此外,似乎有一个小故障的MeasureString,它使返回的宽度比所需的更广泛的一对夫妇的像素,所以多色串显得捉襟见肘了 - 你可能需要调整的部分。 P> </p><p>这应该很容易修改此代码的用户控件。 P> </p><p> <strong>注意 STRONG>:TextRenderer是一个较好的一类用于绘图和测量弦,因为它使用整数。 Graphics.DrawString和.MeasureString使用花车,所以你会在这里和那里下车,按一个像素的错误。 P> <p> <strong>更新 STRONG>:<em>忘记 em>的有关使用TextRenderer。这是狗缓慢。 P> <p>您可以尝试使用一个RichTextBox,这样你可以得到多种颜色的字符串,然后让只有它读取和删除边框。更改背景颜色一样的形式,它是,你可能逃脱它。 P>
</p></em></strong></p></strong></p></strong></p>