Title | Draw lines with custom start and end caps in VB .NET |
Description | This example shows how to draw lines with custom start and end caps in VB .NET. The program makes sets its Pen's CustomStartCap and CustomEndCap properties to CustomLineCap objects. |
Keywords | line caps, start cap, end cap, StartCap, EndCap |
Categories | VB.NET, Graphics |
|
The program creates a GraphicsPath object to define the path that should be drawn to produce the start cap. It adds two lines to draw the tail of an arrow. The coordinate system has X increasing to the left of the line and Y increasing in the line's direction, with (0, 0) at the line's end point. The program uses the GraphicsPath to create a CustomLineCap object.
The program repeats these steps to make the end cap that looks like the head of an arrow.
Then the program creates a Pen and sets its CustomStartCap and CustomEndCap properties to the CustomLineCap objects. Finally it draws some lines.
|
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As _
System.Windows.Forms.PaintEventArgs) Handles _
MyBase.Paint
' Make a GraphicsPath to define the start cap.
Dim start_path As New GraphicsPath
start_path.AddLine(0, 0, 2, 2)
start_path.AddLine(0, 0, -2, 2)
' Make the start cap.
Dim start_cap As New CustomLineCap(Nothing, start_path)
' Make a GraphicsPath to define the end cap.
Dim end_path As New GraphicsPath
end_path.AddLine(0, 0, -2, -2)
end_path.AddLine(0, 0, 2, -2)
' Make the end cap.
Dim end_cap As New CustomLineCap(Nothing, end_path)
' Make a pen that uses the custom caps.
Dim the_pen As New Pen(Color.Blue, 5)
the_pen.CustomStartCap = start_cap
the_pen.CustomEndCap = end_cap
' Draw some lines.
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias
e.Graphics.DrawLine(the_pen, 40, 40, 200, 40)
e.Graphics.DrawLine(the_pen, 40, 80, 200, 200)
e.Graphics.DrawLine(the_pen, 20, 100, 60, 250)
' Clean up.
the_pen.Dispose()
start_path.Dispose()
start_cap.Dispose()
end_path.Dispose()
end_cap.Dispose()
End Sub
|