VB.Net by API/System.Drawing/StringFormat

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

StringFormat.Alignment

  

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


StringFormat.LineAlignment

  

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


StringFormat.Trimming

  
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