110,533
社区成员
发帖
与我相关
我的任务
分享
private void NowPaint1()
{
Rectangle rec = new Rectangle(0, 0, panel1.Width, panel1.Height);
GraphicsPath round = CreateRound(rec, 10 * 2);
Graphics gp = panel1.CreateGraphics();
Brush b = new LinearGradientBrush(rec, Color.Blue, Color.Red, LinearGradientMode.Vertical);
gp.FillPath(b, round);
Image im = panel1.BackgroundImage; if (im != null) gp.DrawImage(im, new Point(0, 0));
}
private void NowPaint2()
{
//在这里如何清空已经绘制的图
panel1.BackColor = Color.Transparent;
}
private GraphicsPath CreateRound(Rectangle rect, int radius) //画圆角
{
GraphicsPath roundRect = new GraphicsPath();
roundRect.AddArc(rect.Right - radius, rect.Top, radius, radius, 270, 90);//右上角
roundRect.AddArc(rect.Right - 1 - radius, rect.Bottom - 1 - radius, radius, radius, 0, 90);//右下角
roundRect.AddArc(rect.Left - 1, rect.Bottom - 1 - radius, radius, radius, 90, 90);//左下角
roundRect.AddArc(rect.Left, rect.Top, radius, radius, 180, 90);//左上角
return roundRect;
}
//在控件_Click(object sender, EventArgs e)
((控件类型)sender).Parent.BackColor//这就是父级背景色
panel1.BackColor = Color.Transparent;
//如果image是动态的,这里加载一下别忘记了。
panel1.Refresh();