扩展Label控件public class MyLabel : Label
{
public MyLabel()
{
InitializeComponent();
} protected override void OnPaint(PaintEventArgs e)
{
//渐变填充
LinearGradientBrush brush = new LinearGradientBrush(this.ClientRectangle, Color.Yellow, Color.Red, LinearGradientMode.Vertical);
e.Graphics.DrawString(this.Text, Font, brush, this.ClientRectangle);
//base.OnPaint(e);
} private System.ComponentModel.IContainer components = null;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
} private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
}
在使用时,比较Text="这个是渐变文字",显示的是"这个是渐变文",少一个字
AutoSize=true;
加上在OnPaint方法后加上base.OnPaint(e),绘制两次发现渐变这一次长度要比原来的要长,不明白为什么?求解
{
public MyLabel()
{
InitializeComponent();
} protected override void OnPaint(PaintEventArgs e)
{
//渐变填充
LinearGradientBrush brush = new LinearGradientBrush(this.ClientRectangle, Color.Yellow, Color.Red, LinearGradientMode.Vertical);
e.Graphics.DrawString(this.Text, Font, brush, this.ClientRectangle);
//base.OnPaint(e);
} private System.ComponentModel.IContainer components = null;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
} private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
}
在使用时,比较Text="这个是渐变文字",显示的是"这个是渐变文",少一个字
AutoSize=true;
加上在OnPaint方法后加上base.OnPaint(e),绘制两次发现渐变这一次长度要比原来的要长,不明白为什么?求解
界面上只有一个控件
应该是这个理由,不过我还是不知道怎么解决,在重绘时我把重绘字体设成比this.font小点就可以显示完