如何在渐变背景面板上设置标签backColor
How to set label backColor on gradient background panel
面板控件的背景颜色设置为颜色渐变。
我想设置相同的面板背景色和标签包颜色
我的代码与下面相同
private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics g = panel1.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(new Rectangle(0, 0, this.panel1.Width, this.panel1.Height), Color.Black, Color.Black, LinearGradientMode.Horizontal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Black, Color.White };
cb.Positions = new Single[] { 0.0F, 1.0F };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, new Rectangle(0, 0, this.panel1.Width, this.panel1.Height));
label1.Parent = panel1;
label1.BackColor = Color.Transparent;
lgb.Dispose();
g.Dispose();
}
哪一部分错了?
下面一行有问题:
Graphics g = panel1.CreateGraphics();
改为:
Graphics g = e.Graphics;
您还可以将以下代码放入构造函数中(以避免在面板为 Invalidated
时重新分配):
label1.Parent = panel1;
label1.BackColor = Color.Transparent;
面板控件的背景颜色设置为颜色渐变。
我想设置相同的面板背景色和标签包颜色
我的代码与下面相同
private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics g = panel1.CreateGraphics();
LinearGradientBrush lgb = new LinearGradientBrush(new Rectangle(0, 0, this.panel1.Width, this.panel1.Height), Color.Black, Color.Black, LinearGradientMode.Horizontal);
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Black, Color.White };
cb.Positions = new Single[] { 0.0F, 1.0F };
lgb.InterpolationColors = cb;
g.FillRectangle(lgb, new Rectangle(0, 0, this.panel1.Width, this.panel1.Height));
label1.Parent = panel1;
label1.BackColor = Color.Transparent;
lgb.Dispose();
g.Dispose();
}
哪一部分错了?
下面一行有问题:
Graphics g = panel1.CreateGraphics();
改为:
Graphics g = e.Graphics;
您还可以将以下代码放入构造函数中(以避免在面板为 Invalidated
时重新分配):
label1.Parent = panel1;
label1.BackColor = Color.Transparent;