Imports System.Drawing.Text
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Windows.Forms
public class TransformRotateTextPaint
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)
Me.Font = New Font("Times New Roman", 20, FontStyle.Bold, GraphicsUnit.Pixel)
e.Graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit
DrawArrow(e.Graphics, "")
e.Graphics.TranslateTransform(150, 50, MatrixOrder.Append)
DrawArrow(e.Graphics, "Translate 150 horizontally and 50 vertically")
e.Graphics.RotateTransform(45, MatrixOrder.Append)
DrawArrow(e.Graphics, "Rotate 45 degrees")
' Reset the transformation.
e.Graphics.ResetTransform()
e.Graphics.RotateTransform(45, MatrixOrder.Append)
DrawArrow(e.Graphics, "Rotate 45 degrees after reset")
e.Graphics.TranslateTransform(150, 50, MatrixOrder.Append)
DrawArrow(e.Graphics, "Translate 150 horizontally and 50 vertically after reset")
End Sub
' Draw an arrow outline containing some text.
Private Sub DrawArrow(ByVal gr As Graphics, ByVal txt As String)
' Draw the text.
Dim layout_rectangle As New RectangleF(10, 20, 600, 20)
Dim string_format As New StringFormat
string_format.LineAlignment = StringAlignment.Center
string_format.Alignment = StringAlignment.Center
gr.DrawString(txt, Me.Font, Brushes.Black, _
layout_rectangle, string_format)
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
|