【发布时间】:2013-02-11 20:34:10
【问题描述】:
我有一个自定义标签类,绘制的文本不适合。 我在这里做错了什么?
class MyLabel: Label
{
public MyLabel()
{
SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint, true);
}
protected override void OnPaint(PaintEventArgs e)
{
using (LinearGradientBrush brush = new LinearGradientBrush(ClientRectangle, Color.Black, Color.LightGray, LinearGradientMode.ForwardDiagonal))
e.Graphics.DrawString(Text, Font, brush, ClientRectangle);
}
}
如果我将 MyLabel 的文本设置为“123456790 123456790”(AutoSize = true),那么我在 Designer(或在运行时)中看到“1234567890 123456789”(没有最后一个零,但是一些空间)。如果我尝试“1234567890 1234567890 1234567890 1234567890”,那么将有“1234567890 1234567890 1234567890 12345678”(没有“90”,但还有一些空间)。
【问题讨论】:
-
如何设置标签的大小?是
MyLable里面的全部代码吗?如果是,则将AutoSize属性设置为true。 -
AutoSize = true,是的。忘了说。
标签: c# winforms labels ownerdrawn