GDI+ MeasureString Method in VB.NET

In this article I will explain about MeasureString Method in GDI+.
  • 3342

MeasureString measure a string when it is drawn with a font object and returns the size of the string as a SizeF object. You can use SizeF to find out the height and width of string.

MeasureString can also be used to find the total numbers of characters and lines in a string. It has seven overloaded methods. It takes two required parameters: the string and font to measure. Optional parameters you can pass include the width of the string in pixels, maximum layout area of the text, string format, and combinations of these parameters.

Listing 3.30 uses the MeasureString method to measure a string's height and width and draws a rectangle and a circle around the string. This example also shows how to find the total number of lines and character of a string.

LISTING 3.30: Using the MeasureString method

Public Class Form1
    Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        Dim g As Graphics = Graphics.FromHwnd(Me.Handle)
        Dim testString As String = "This is a test string"
        Dim verdana14 As New Font("Verdana", 14)
        Dim tahoma18 As New Font("Tahoma", 18)
        Dim nChars As Integer
        Dim nLines As Integer

        ' Call MeasureString to measure a string
        Dim sz As SizeF = g.MeasureString(testString, verdana14)
        Dim stringDetails As String = ("Height : " & sz.Height.ToString() & ", Width: ") + sz.Width.ToString()
        MessageBox.Show("first string detials : " & stringDetails)
        g.DrawString(testString, verdana14, Brushes.Green, New PointF(0, 100))
        g.DrawRectangle(New Pen(Color.Red, 2), 0.0F, 100.0F, sz.Width, sz.Height)
        sz = g.MeasureString("Ellipse", tahoma18, New SizeF(0.0F, 100.0F), New StringFormat(), nChars, nLines)
        stringDetails = ((("Height : " & sz.Height.ToString() & ", width : ") + sz.Width.ToString() & ", Lines : ") + nLines.ToString() & ", Chars : ") + nChars.ToString()
        MessageBox.Show("Second string details : " & stringDetails)
        g.DrawString("Ellipse", tahoma18, Brushes.Blue, New PointF(10, 10))
        g.DrawEllipse(New Pen(Color.Red, 3), 10, 10, sz.Width, sz.Height)
    End Sub
End Class

Figure 3.41 shows the output from Listing 3.30.


FIGURE 3.41: Using MeasureString when drawing text.


Hope the article would have helped you in understanding MeasureString Method in GDI+. Read other articles on GDI+ on the website.


More Articles

© 2020 DotNetHeaven. All rights reserved.