VB.Net by API/System.Drawing/StringFormat

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

StringFormat.Alignment

<source lang="vbnet">

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.vbex.ru"
       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


 </source>


StringFormat.LineAlignment

<source lang="vbnet">

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.vbex.ru"
       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


 </source>


StringFormat.Trimming

<source lang="vbnet"> Imports System.Drawing.Drawing2D Imports System Imports System.Drawing.Text Imports System.Drawing Imports System.Windows.Forms Imports System.Math Public Class MainClass

  Shared Sub Main()
      Dim form1 As Form = New Form1()
      Application.Run(form1)
  End Sub 

End Class

Public Class Form1

   Inherits System.Windows.Forms.Form
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Me.ResizeRedraw = True
   End Sub
   Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
       Dim txt As String
       Dim the_font As New Font("Times New Roman", 30, FontStyle.Bold, GraphicsUnit.Pixel)
       Dim layout_rect As RectangleF
       e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit
       layout_rect = New RectangleF(100, 0, 180, 70)
       txt = "123456789012345678901234567890"
       Dim string_format As New StringFormat
       string_format.Trimming = StringTrimming.Character
       e.Graphics.DrawString(txt, the_font, Brushes.Black, layout_rect, string_format)
       e.Graphics.DrawRectangle(Pens.Black, Rectangle.Round(layout_rect))
   End Sub

End Class


 </source>