Export (0) Print
Expand All

How to: Align Drawn Text

When you perform custom drawing, you may often want to center drawn text on a form or control. You can easily align text drawn with the DrawString or DrawText methods by creating the correct formatting object and setting the appropriate format flags.

To draw centered text with GDI+ (DrawString)

  • Use a StringFormat with the appropriate DrawString method to specify centered text.

    Dim text1 As String = "Use StringFormat and Rectangle objects to" & _
        " center text in a rectangle." 
    Dim font1 As New Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point)
    Try 
        Dim rect1 As New Rectangle(10, 10, 130, 140)
    
        ' Create a StringFormat object with the each line of text, and the block 
        ' of text centered on the page. 
        Dim stringFormat As New StringFormat()
        stringFormat.Alignment = StringAlignment.Center
        stringFormat.LineAlignment = StringAlignment.Center
    
        ' Draw the text and the surrounding rectangle.
        e.Graphics.DrawString(text1, font1, Brushes.Blue, rect1, stringFormat)
        e.Graphics.DrawRectangle(Pens.Black, rect1)
    Finally
        font1.Dispose()
    End Try
    

To draw centered text with GDI (DrawText)

  • Use the TextFormatFlags enumeration for wrapping as well as vertically and horizontally centering text with the appropriate DrawText method.

    Dim text2 As String = "Use TextFormatFlags and Rectangle objects to" & _
            " center text in a rectangle." 
    
    Dim font2 As New Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point)
    Try 
        Dim rect2 As New Rectangle(150, 10, 130, 140)
    
        ' Create a TextFormatFlags with word wrapping, horizontal center and 
        ' vertical center specified. 
        Dim flags As TextFormatFlags = TextFormatFlags.HorizontalCenter Or _
            TextFormatFlags.VerticalCenter Or TextFormatFlags.WordBreak
    
        ' Draw the text and the surrounding rectangle.
        TextRenderer.DrawText(e.Graphics, text2, font2, rect2, Color.Blue, flags)
        e.Graphics.DrawRectangle(Pens.Black, rect2)
    Finally
        font2.Dispose()
    End Try
    

The preceding code examples are designed for use with Windows Forms, and they require PaintEventArgs e, which is a parameter of PaintEventHandler.

Show:
© 2014 Microsoft