VB.Net Tutorial/2D Graphics/Custom LineCap

Материал из VB Эксперт
Версия от 15:54, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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>