VintaSoft Imaging .NET SDK 14.0: Documentation for .NET developer
Vintasoft.Imaging.Drawing Namespace / DrawingEngine Class / FillPath Methods / FillPath(IDrawingBrush,IGraphicsPath) Method
Syntax Example Requirements SeeAlso
In This Topic
    FillPath(IDrawingBrush,IGraphicsPath) Method (DrawingEngine)
    In This Topic
    Fills the interior of a path.
    Syntax
    'Declaration
    
    Public Overloads Sub FillPath( _
    ByVal brush
    The brush that determines the characteristics of the fill.
    As IDrawingBrush, _
    ByVal path
    The path to fill.
    As IGraphicsPath _
    )

    Parameters

    brush
    The brush that determines the characteristics of the fill.
    path
    The path to fill.
    Example

    Here is an example that shows how to fill path using drawing engine.

    
    ''' <summary>
    ''' Fills objects with different types of brushes on specified drawing engine.
    ''' </summary>
    ''' <param name="drawingEngine">Drawing engine.</param>
    ''' <param name="area">Area to draw objects in.</param>
    Public Shared Sub BrushExample(drawingEngine As DrawingEngine, area As RectangleF)
        Dim factory As DrawingFactory = drawingEngine.DrawingFactory
    
        ' create graphics path to fill
        Using path As IGraphicsPath = factory.CreateGraphicsPath()
            ' add path elements
            path.AddLine(New PointF(area.X, area.Y + area.Height * 0.47F), New PointF(area.X + area.Width * 0.23F, area.Y))
    
            Dim curvePoints As PointF() = New PointF() {New PointF(area.X + area.Width * 0.23F, area.Y), New PointF(area.X + area.Width * 0.47F, area.Y + area.Height * 0.1F), New PointF(area.X + area.Width * 0.47F, area.Y + area.Height * 0.2F), New PointF(area.X + area.Width * 0.35F, area.Y + area.Height * 0.22F), New PointF(area.X + area.Width * 0.27F, area.Y + area.Height * 0.24F), New PointF(area.X + area.Width * 0.27F, area.Y + area.Height * 0.35F), _
                New PointF(area.X + area.Width * 0.45F, area.Y + area.Height * 0.47F)}
    
            path.AddBezierCurves(curvePoints)
    
            ' create solid brush and fill graphics path
            Using brush As IDrawingBrush = factory.CreateSolidBrush(Color.LightGreen)
                drawingEngine.FillPath(brush, path)
            End Using
    
            ' translate path
            path.Transform(AffineMatrix.CreateTranslation(area.Width / 2, 0))
    
            ' create gradient rectangle for linear gradient brush
            Dim gradientRect As New RectangleF(0, 0, area.Width / 3, area.Height / 3)
            ' create linear gradient brush and fill graphics path
            Using brush As IDrawingBrush = factory.CreateLinearGradientBrush(gradientRect, Color.Orange, Color.Purple)
                drawingEngine.FillPath(brush, path)
            End Using
    
            ' translate path
            path.Transform(AffineMatrix.CreateTranslation(0, area.Height / 2))
    
            ' create hatch brush and fill graphics path
            Using brush As IDrawingBrush = factory.CreateHatchBrush(BrushHatchStyle.DiagonalCross, Color.Yellow, Color.Black)
                drawingEngine.FillPath(brush, path)
            End Using
    
            ' translate path
            path.Transform(AffineMatrix.CreateTranslation(-area.Width / 2, 0))
    
            ' path to image file for image brush
            ' this image is located in <install path>/VintaSoft/Imaging .NET/Images/
            Dim imagePath As String = "VintasoftLogo.gif"
    
            ' create VintaSoft image and use it to create image brush
            Using brushImage As New VintasoftImage(imagePath)
                Using brush As IDrawingBrush = factory.CreateImageBrush(brushImage, True)
                    drawingEngine.FillPath(brush, path)
                End Using
            End Using
        End Using
    End Sub
    
    
    
    /// <summary>
    /// Fills objects with different types of brushes on specified drawing engine.
    /// </summary>
    /// <param name="drawingEngine">Drawing engine.</param>
    /// <param name="area">Area to draw objects in.</param>
    public static void BrushExample(DrawingEngine drawingEngine, RectangleF area)
    {
        DrawingFactory factory = drawingEngine.DrawingFactory;
    
        // create graphics path to fill
        using (IGraphicsPath path = factory.CreateGraphicsPath())
        {
            // add path elements
            path.AddLine(
                new PointF(area.X, area.Y + area.Height * 0.47f),
                new PointF(area.X + area.Width * 0.23f, area.Y));
    
            PointF[] curvePoints = new PointF[]
            {
                new PointF(area.X + area.Width * 0.23f, area.Y),
                new PointF(area.X + area.Width * 0.47f, area.Y + area.Height * 0.1f),
                new PointF(area.X + area.Width * 0.47f, area.Y + area.Height * 0.2f),
                new PointF(area.X + area.Width * 0.35f, area.Y + area.Height * 0.22f),
                new PointF(area.X + area.Width * 0.27f, area.Y + area.Height * 0.24f),
                new PointF(area.X + area.Width * 0.27f, area.Y + area.Height * 0.35f),
                new PointF(area.X + area.Width * 0.45f, area.Y + area.Height * 0.47f),
            };
    
            path.AddBezierCurves(curvePoints);
    
            // create solid brush and fill graphics path
            using (IDrawingBrush brush = factory.CreateSolidBrush(Color.LightGreen))
                drawingEngine.FillPath(brush, path);
    
            // translate path
            path.Transform(AffineMatrix.CreateTranslation(area.Width / 2, 0));
    
            // create gradient rectangle for linear gradient brush
            RectangleF gradientRect = new RectangleF(0, 0, area.Width / 3, area.Height / 3);
            // create linear gradient brush and fill graphics path
            using (IDrawingBrush brush = factory.CreateLinearGradientBrush(gradientRect, Color.Orange, Color.Purple))
                drawingEngine.FillPath(brush, path);
    
            // translate path
            path.Transform(AffineMatrix.CreateTranslation(0, area.Height / 2));
    
            // create hatch brush and fill graphics path
            using (IDrawingBrush brush = factory.CreateHatchBrush(BrushHatchStyle.DiagonalCross, Color.Yellow, Color.Black))
                drawingEngine.FillPath(brush, path);
    
            // translate path
            path.Transform(AffineMatrix.CreateTranslation(-area.Width / 2, 0));
    
            // path to image file for image brush
            // this image is located in <install path>/VintaSoft/Imaging .NET/Images/
            string imagePath = "VintasoftLogo.gif";
    
            // create VintaSoft image and use it to create image brush
            using (VintasoftImage brushImage = new VintasoftImage(imagePath))
            using (IDrawingBrush brush = factory.CreateImageBrush(brushImage, true))
                drawingEngine.FillPath(brush, path);
        }
    }
    
    

    Requirements

    Target Platforms: .NET9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

    See Also