多种颜色在C#.NET标签

<p>我正在寻找一种方法来在一个C#/。NET的标签显示多种颜色。例如标签显示的是一系列的CSV分隔值,每个取这取决于它们落入水桶的颜色。我宁愿不使用多个标签,因为值是变长,我不想与动态布局玩。有没有原生支持呢? P&gt;
</p>

165 浏览 1 回复
  gt   控件   一个   颜色   标签  

回复

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

    郝姜

相关提问


友情链接: