我的应用程序涉及绘制自定义形状,其中从数据库中检索形状的详细信息。形状将是直线,圆弧。
我将调用DrawArc和DrawLine函数来绘制自定义形状。
我的问题是我需要用背景颜色填充这个自定义形状。
我正在使用以下命名空间。
using System.Drawing.Drawing2D;
using System.Drawing;
我试过的东西:
Graphics.FillRegion方法
private void OnPaint(object sender, PaintEventArgs e)
{
Pen redPen = new Pen(Color.Red, 2);
// Create a graphics path
GraphicsPath path = new GraphicsPath();
// Add two lines, a rectangle and an ellipse
Graphics g = e.Graphics;
path.StartFigure();
path.AddLine(20, 400, 20, 20); // left
path.AddLine(20, 20, 400, 20); //top
path.AddLine(400, 20, 400, 400); // right
path.AddLine(400, 400, 20, 400); // bottom
path.CloseFigure();
g.DrawPath(redPen, path);
Region reg = new Region(path);
g.FillRegion(Brushes.Green, reg);
reg.Dispose();
g.Dispose();
}
使用这种方法很容易填充一个简单的形状,其中明确定义了起点和终点。
但是我的应用程序涉及复杂的形状,很难跟踪这些要点。如果我使用这种方法,填充背景颜色是不合适的。
请给我一些填充自定义形状的方法。
感谢您的帮助。