绘制渐变标签
本文关键字:标签 渐变 绘制 | 更新日期: 2023-09-27 18:28:28
是否可以对标签文本应用渐变?
现在我正在接管一个控件OnPaint并绘制我想要的文本字符串;然而,这是具体的。我真的很想制作它,这样标签本身就可以应用我想要的渐变色。因此,随着文本的变化,每个字符都会指定渐变。
因此,我不使用ForeColor,而是应用LinearGradientBrush。我现在正在使用WinForms。
编辑1
这是我目前正在使用的代码。但是,这只会将渐变应用于所有字符。我想更改它,以便应用字符串中的每个字符。
// Draw the formatted text string to the DrawingContext of the control.
Font font = new Font("BankGothic Md BT", 48f, FontStyle.Bold);
LinearGradientBrush brush = new LinearGradientBrush(label1.Location, new Point(label1.Width, label1.Height), Color.Goldenrod, Color.Black);
e.Graphics.DrawString(label1.Text, font, brush, 0,0);
编辑2
以下是我所做的。我刚刚扩展了Label类并继承了OnPaint。
public partial class LabelEx : Label {
public LabelEx() {
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e) {
// Draw the formatted text string to the DrawingContext of the control.
//base.OnPaint(e);
Font font = new Font("Tahoma", 48f, FontStyle.Bold);
LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, Width, Height + 5), Color.Gold, Color.Black, LinearGradientMode.Vertical);
e.Graphics.DrawString(Text, font, brush, 0, 0);
}
}
这给了我一个很好的渐变文本标签。
谢谢!
以下是我所做的。我刚刚扩展了Label类并继承了OnPaint。
public partial class LabelEx : Label {
public LabelEx() {
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e) {
// Draw the formatted text string to the DrawingContext of the control.
//base.OnPaint(e);
Font font = new Font("Tahoma", 48f, FontStyle.Bold);
LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, Width, Height + 5), Color.Gold, Color.Black, LinearGradientMode.Vertical);
e.Graphics.DrawString(Text, font, brush, 0, 0);
}
}