CustomLineCap Constructor (GraphicsPath, GraphicsPath)


Initializes a new instance of the CustomLineCap class with the specified outline and fill.

Namespace:   System.Drawing.Drawing2D
Assembly:  System.Drawing (in System.Drawing.dll)

public CustomLineCap(
	GraphicsPath fillPath,
	GraphicsPath strokePath


Type: System.Drawing.Drawing2D.GraphicsPath

A GraphicsPath object that defines the fill for the custom cap.

Type: System.Drawing.Drawing2D.GraphicsPath

A GraphicsPath object that defines the outline of the custom cap.

CustomLineCap uses a fill mode of "winding" regardless of the fill mode specified for the operation.

The fillPath and strokePath parameters cannot be used at the same time. One parameter must be passed a null value. If neither parameter is passed a null value, fillPath will be ignored. If strokePath is null, fillPath should intercept the negative y-axis.

The following example demonstrates how to use the CustomLineCap constructor. To run this example, paste the code into a Windows Form. Handle the form's Paint event and call DrawCaps from the form's Paint event-handling method, passing e as PaintEventArgs.

protected void DrawCaps(PaintEventArgs e)
    GraphicsPath hPath = new GraphicsPath();

    // Create the outline for our custom end cap.
    hPath.AddLine(new Point(0, 0), new Point(0, 5));
    hPath.AddLine(new Point(0, 5), new Point(5, 1));
    hPath.AddLine(new Point(5, 1), new Point(3, 1));

    // Construct the hook-shaped end cap.
    CustomLineCap HookCap = new CustomLineCap(null, hPath);

    // Set the start cap and end cap of the HookCap to be rounded.
    HookCap.SetStrokeCaps(LineCap.Round, LineCap.Round);

    // Create a pen and set end custom start and end
    // caps to the hook cap.
    Pen customCapPen = new Pen(Color.Black, 5);
    customCapPen.CustomStartCap = HookCap;
    customCapPen.CustomEndCap = HookCap;

    // Create a second pen using the start and end caps from
    // the hook cap.
    Pen capPen = new Pen(Color.Red, 10);
    LineCap startCap;
    LineCap endCap;
    HookCap.GetStrokeCaps(out startCap, out endCap);
    capPen.StartCap = startCap;
    capPen.EndCap = endCap;

    // Create a line to draw.
    Point[] points = { new Point(100, 100), new Point(200, 50), 
        new Point(250, 300) };

    // Draw the lines.
    e.Graphics.DrawLines(capPen, points);
    e.Graphics.DrawLines(customCapPen, points);


.NET Framework
Available since 1.1
Return to top