public Rectangle borderRectangle;
private void FlatButton_Paint(object sender, PaintEventArgs e)
{
borderRectangle = new Rectangle(0, 0, Width, Height);
e.Graphics.DrawRectangle(new Pen(borderbrush, borderThickness), borderRectangle);
e.Graphics.DrawString(this.Text, this.Font, (active) ? textbrush : borderbrush, borderRectangle, stringFormat);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
this.Paint += FlatButton_Paint;
using (LinearGradientBrush linGrBrush = new LinearGradientBrush(new Point(borderRectangle.Left), new Point( borderRectangle.Right), Color.FromArgb(255, 248, 140, 17), Color.FromArgb(255, 241, 99, 21)))
{
e.Graphics.FillRectangles(linGrBrush);
}
}
Мне нужно что-бы созданная кнопка заполнялась градиентом, но почему-то выдает ошибку, в чем проблема?
https://msdn.microsoft.com/en-us/library/system.drawing.graphics.fillrectangles(v=vs.71).aspx
e.Graphics.FillRectangles(linGrBrush);
FillRectangles - переводится "закрасить прямоугольники". Как эта функция должна догадаться, какие прямоугольники закрасить?
e.Graphics.FillRectangles(linGrBrush, new Rectangle[] { borderRectangle });
Сборка персонального компьютера от Artline: умный выбор для современных пользователей