ARTICLE

The MeasureString Method in GDI+

Posted by Dinesh Beniwal Articles | GDI+ in VB.NET January 06, 2010
In this article I will explain about MeasureString Method in GDI+.
Reader Level:

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)
        g.Clear(Me.BackColor)
        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)
        g.Dispose()
    End Sub
End Class


Figure 3.41 shows the output from Listing 3.30.

figure_new1.gif

figure_new2.gif

FIGURE 3.41: Using MeasureString when drawing text.

Conclusion

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

share this article :
post comment
 
Team Foundation Server Hosting
Become a Sponsor
PREMIUM SPONSORS
  • ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications.
    Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
Become a Sponsor