我试图填补我的两个半圆。我想要一面黑色,另一面白色。我用什么?
这是我的代码片段:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Rectangle rect = new Rectangle(100, 100, 320, 320);
e.Graphics.DrawArc(new Pen(new SolidBrush(Color.Black), 10), rect, 90, 180);
e.Graphics.DrawArc(new Pen(new SolidBrush(Color.White), 10), rect, 270, 180);
}
Run Code Online (Sandbox Code Playgroud)
您期望被调用FillArc的实际上被称为FillPie.
它采用与 相同的参数DrawArc,因此将执行以下操作:
e.Graphics.FillPie(Brushes.White, rect, 90, 180);
e.Graphics.FillPie(Brushes.Black, rect, 270, 180);
Run Code Online (Sandbox Code Playgroud)
如果您想使用相同的矩形,您可以将其“缩小”笔宽度的 1/2:
rect.Inflate(-5, -5);
Run Code Online (Sandbox Code Playgroud)
使用
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
Run Code Online (Sandbox Code Playgroud)
你得到这个: