VB.Net Tutorial/2D Graphics/PageUnit

Материал из VB Эксперт
Перейти к: навигация, поиск

Change PageUnit

<source lang="vbnet">Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms public class TransformUnits

  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 g As Graphics = Me.CreateGraphics()
       g.Clear(Me.BackColor)
       g.DrawEllipse(Pens.Red, 0, 0, 100, 50)
       g.PageUnit = GraphicsUnit.Pixel
       g.DrawEllipse(Pens.Red, 0, 0, 100, 50)
       g.PageUnit = GraphicsUnit.Millimeter
       g.DrawEllipse(Pens.Blue, 0, 0, 100, 50)
       g.PageUnit = GraphicsUnit.Point
       g.DrawEllipse(Pens.Green, 0, 0, 100, 50)
       g.Dispose()
 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>

Change Pen width by setting the PageUnit

<source lang="vbnet">Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms public class PenWidth

  public Shared Sub Main
       Application.Run(New Form1)
  End Sub

End class Public Class Form1

   Private Sub RadioButton_CheckedChanged( _
         ByVal sender As System.Object, _
         ByVal e As System.EventArgs) _
         Handles UsePixels.CheckedChanged, _
         UseMillimeters.CheckedChanged, _
         UseInches.CheckedChanged
       " ----- Change the scaling system.
       Me.Refresh()
   End Sub
   Private Sub Form1_Paint(ByVal sender As Object, _
         ByVal e As System.Windows.Forms.PaintEventArgs) _
         Handles Me.Paint
       Dim canvas As Graphics
       canvas = e.Graphics
       If (UseMillimeters.Checked = True) Then
           canvas.PageUnit = GraphicsUnit.Millimeter
       ElseIf (UseInches.Checked = True) Then
           canvas.PageUnit = GraphicsUnit.Inch
       Else
           canvas.PageUnit = GraphicsUnit.Pixel
       End If
       canvas.DrawLine(New Pen(Color.Red, 1), 1, 1,200, 100)
   End Sub

End Class

<Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Class Form1

   Inherits System.Windows.Forms.Form
   "Form overrides dispose to clean up the component list.
   <System.Diagnostics.DebuggerNonUserCode()> _
   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing AndAlso components IsNot Nothing Then
           components.Dispose()
       End If
       MyBase.Dispose(disposing)
   End Sub
   "Required by the Windows Form Designer
   Private components As System.ruponentModel.IContainer
   "NOTE: The following procedure is required by the Windows Form Designer
   "It can be modified using the Windows Form Designer.  
   "Do not modify it using the code editor.
   <System.Diagnostics.DebuggerStepThrough()> _
   Private Sub InitializeComponent()
       Me.UsePixels = New System.Windows.Forms.RadioButton
       Me.UseMillimeters = New System.Windows.Forms.RadioButton
       Me.UseInches = New System.Windows.Forms.RadioButton
       Me.SuspendLayout()
       "
       "UsePixels
       "
       Me.UsePixels.AutoSize = True
       Me.UsePixels.Checked = True
       Me.UsePixels.Location = New System.Drawing.Point(24, 128)
       Me.UsePixels.Name = "UsePixels"
       Me.UsePixels.Size = New System.Drawing.Size(52, 17)
       Me.UsePixels.TabIndex = 0
       Me.UsePixels.TabStop = True
       Me.UsePixels.Text = "Pixels"
       Me.UsePixels.UseVisualStyleBackColor = True
       "
       "UseMillimeters
       "
       Me.UseMillimeters.AutoSize = True
       Me.UseMillimeters.Location = New System.Drawing.Point(24, 152)
       Me.UseMillimeters.Name = "UseMillimeters"
       Me.UseMillimeters.Size = New System.Drawing.Size(73, 17)
       Me.UseMillimeters.TabIndex = 1
       Me.UseMillimeters.Text = "Millimeters"
       Me.UseMillimeters.UseVisualStyleBackColor = True
       "
       "UseInches
       "
       Me.UseInches.AutoSize = True
       Me.UseInches.Location = New System.Drawing.Point(24, 176)
       Me.UseInches.Name = "UseInches"
       Me.UseInches.Size = New System.Drawing.Size(57, 17)
       Me.UseInches.TabIndex = 2
       Me.UseInches.Text = "Inches"
       Me.UseInches.UseVisualStyleBackColor = True
       "
       "Form1
       "
       Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
       Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
       Me.ClientSize = New System.Drawing.Size(513, 384)
       Me.Controls.Add(Me.UseInches)
       Me.Controls.Add(Me.UseMillimeters)
       Me.Controls.Add(Me.UsePixels)
       Me.Name = "Form1"
       Me.Text = "Drawing Lines One Pixel Wide Regardless of Scaling"
       Me.ResumeLayout(False)
       Me.PerformLayout()
   End Sub
   Friend WithEvents UsePixels As System.Windows.Forms.RadioButton
   Friend WithEvents UseMillimeters As System.Windows.Forms.RadioButton
   Friend WithEvents UseInches As System.Windows.Forms.RadioButton

End Class</source>