有没有办法在C#GDI +中填充绘图,其中绘图涉及多个圆弧,直线?

时间:2014-05-15 05:54:53

标签: c#-4.0 c#-3.0 gdi+ gdi

我的应用程序涉及绘制自定义形状,其中从数据库中检索形状的详细信息。形状将是直线,圆弧。

我将调用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();
    }

使用这种方法很容易填充一个简单的形状,其中明确定义了起点和终点。

但是我的应用程序涉及复杂的形状,很难跟踪这些要点。如果我使用这种方法,填充背景颜色是不合适的。

请给我一些填充自定义形状的方法。

感谢您的帮助。

0 个答案:

没有答案