Mega Code Archive

 
Categories / VB.Net by API / System Drawing
 

StringAlignment Center

Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms Imports System.Math public class MeasureCharacterRange    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 txt As String = "www.rntsoft.com"         Dim the_font As New Font("Times New Roman", 50, FontStyle.Bold, GraphicsUnit.Pixel)         Dim layout_rect As New RectangleF(0, 0, Me.ClientSize.Width, Me.ClientSize.Height)         Dim string_format As New StringFormat         string_format.LineAlignment = StringAlignment.Center         string_format.Alignment = StringAlignment.Center         e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit         Dim character_ranges(txt.Length - 1) As CharacterRange         For i As Integer = 0 To txt.Length - 1             character_ranges(i) = New CharacterRange(i, 1)         Next i         string_format.SetMeasurableCharacterRanges(character_ranges)         Dim character_regions() As Region = e.Graphics.MeasureCharacterRanges(txt, the_font, layout_rect, string_format)         For Each rgn As Region In character_regions             Dim character_bounds As RectangleF = rgn.GetBounds(e.Graphics)             Dim character_rect As Rectangle = Rectangle.Round(character_bounds)             e.Graphics.DrawRectangle(Pens.White, character_rect)         Next rgn         e.Graphics.DrawString(txt, the_font, Brushes.Black, layout_rect, 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