110,537
社区成员
发帖
与我相关
我的任务
分享
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
SolidBrush sb = new SolidBrush(Color.FromArgb(64, 0, 0, 0));
g.FillRectangle(sb, 20, 20, 100, 100);
g.FillRectangle(sb, 60, 60, 100, 100);
}
using (var path = new GraphicsPath())
{
path.AddRectangle(r2);
path.AddRectangle(r3);
path.FillMode = FillMode.Winding; //一定要是环绕模式,否则镂空了
g.FillRectangle(Brushes.Red, r1);
g.FillPath(sb, path);
//g.DrawPath(Pens.Red, path);
}
protected override void OnPaint(PaintEventArgs e)
{
var g = e.Graphics;
SolidBrush sb = new SolidBrush(Color.FromArgb(64, 0, 0, 0));
var r1 = new Rectangle(40, 40, 100, 100);
var r2 = new Rectangle(20, 20, 100, 100);
var r3 = new Rectangle(60, 60, 100, 100);
g.FillRectangle(Brushes.Red, r1);
g.FillRectangle(sb, r2);
g.FillRectangle(sb, r3);
var reg = new Region(ClientRectangle);
g.TranslateTransform(160, 0);
g.FillRectangle(Brushes.Red, r1);
g.FillRectangle(sb, r2);
reg.Xor(r2);
g.Clip = reg;
g.FillRectangle(sb, r3);
reg = new Region();
reg.MakeEmpty();
g.TranslateTransform(160, 0);
g.FillRectangle(Brushes.Red, r1);
reg.Union(r2);
reg.Union(r3);
g.FillRegion(sb, reg);
}