我正在 WinForms 应用程序中绘制一些字形。每个字形由一个图形路径定义,基本上是一个圆角矩形。
现在我用一种颜色填充图形路径,但我需要用两种颜色填充。下面的例子解释了我需要什么:
我想避免创建一个新GraphicsPath
的,因为应用程序的性能可能会受到影响。
是否有任何棘手的选项可以在不创建新图形路径的情况下绘制第二种填充颜色?
这是我的图形路径的代码:
public class RoundedRectangle
{
public static GraphicsPath Create(int x, int y, int width, int height)
{
int radius = height / 2;
int xw = x + width;
int yh = y + height;
int xwr = xw - radius;
int xr = x + radius;
int r2 = radius * 2;
int xwr2 = xw - r2;
GraphicsPath p = new GraphicsPath();
p.StartFigure();
// Right arc
p.AddArc(xwr2, y, r2, r2, 270, 180);
//Bottom Edge
p.AddLine(xwr, yh, xr, yh);
// Left arc
p.AddArc(x, y, r2, r2, 90, 180);
//closing the figure adds the top Edge automatically
p.CloseFigure();
return p;
}
}