VB.Net Tutorial/2D Graphics/Custom LineCap
Версия от 19:40, 26 мая 2010; (обсуждение)
Draw line with Custom Line Cap
<source lang="vbnet">Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms public class CustomLineCapLine
public Shared Sub Main Application.Run(New Form1) End Sub
End class public class Form1
Inherits System.Windows.Forms.Form Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) Dim pts() As Point = { _ New Point(0, 0), _ New Point(2, 2), _ New Point(0, 0), _ New Point(2, -2) _ } Dim cap_path As New GraphicsPath cap_path.AddLines(pts) " Make the CustomLineCap. Dim x_cap As New CustomLineCap(Nothing, cap_path) " Draw some lines with x_cap. Dim the_pen As New Pen(Color.Black, 1) the_pen.CustomStartCap = x_cap the_pen.CustomEndCap = x_cap the_pen.Width = 20 e.Graphics.DrawLine(the_pen, 50, 200, 200, 200) End Sub Public Sub New() MyBase.New() Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(292, 273) Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen End Sub
End Class</source>
Make the CustomLineCap
<source lang="vbnet">Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms public class CustomLineCapLine
public Shared Sub Main Application.Run(New Form1) End Sub
End class public class Form1
Inherits System.Windows.Forms.Form Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) Dim pts() As Point = { _ New Point(0, 0), _ New Point(2, 2), _ New Point(0, 0), _ New Point(2, -2) _ } Dim cap_path As New GraphicsPath cap_path.AddLines(pts) " Make the CustomLineCap. Dim x_cap As New CustomLineCap(Nothing, cap_path) " Draw some lines with x_cap. Dim the_pen As New Pen(Color.Black, 1) the_pen.CustomStartCap = x_cap the_pen.CustomEndCap = x_cap the_pen.Width = 20 e.Graphics.DrawLine(the_pen, 50, 200, 200, 200) End Sub Public Sub New() MyBase.New() Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(292, 273) Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen End Sub
End Class</source>
Set Pen.CustomStartCap and Pen.CustomEndCap
<source lang="vbnet">Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms public class CustomLineCapLine
public Shared Sub Main Application.Run(New Form1) End Sub
End class public class Form1
Inherits System.Windows.Forms.Form Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) Dim pts() As Point = { _ New Point(0, 0), _ New Point(2, 2), _ New Point(0, 0), _ New Point(2, -2) _ } Dim cap_path As New GraphicsPath cap_path.AddLines(pts) " Make the CustomLineCap. Dim x_cap As New CustomLineCap(Nothing, cap_path) " Draw some lines with x_cap. Dim the_pen As New Pen(Color.Black, 1) the_pen.CustomStartCap = x_cap the_pen.CustomEndCap = x_cap the_pen.Width = 20 e.Graphics.DrawLine(the_pen, 50, 200, 200, 200) End Sub Public Sub New() MyBase.New() Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(292, 273) Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen End Sub
End Class</source>