Home
Search
 
What's New
Index
Books
Links
Q & A
Newsletter
Banners
 
Feedback
Tip Jar
 
C# Helper...
 
XML RSS Feed
Follow VBHelper on Twitter
 
 
MSDN Visual Basic Community
 
 
 
 
 
 
TitleDraw text filled with text in VB .NET
Keywordsfilled text, outline text, text, region, SetClip, FillPath
CategoriesGraphics
 
In the form's Paint event handler, create a GraphicsPath object. Use its AddString method to add the string to it.

Call the Graphics object's FillPath method to fill the text path with blue. Then call the Graphics object's SetClip method to make the object use the path as its clipping path.

Create Font and Brush objects to use in drawing the text inside the larger text. Use the Graphics object's MeasureString method to see how big the text will be using this font. Now loop to draw the text all over the form.

 
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As _
    System.Windows.Forms.PaintEventArgs) Handles _
    MyBase.Paint
    Dim text_path As GraphicsPath

    ' Create the text path.
    text_path = New System.Drawing.Drawing2D.GraphicsPath( _
        Drawing.Drawing2D.FillMode.Alternate)
    text_path.AddString("Flowers", _
        New FontFamily("Times New Roman"), _
        FontStyle.Bold, 200, _
        New Point(10, 10), _
        StringFormat.GenericDefault)

    ' Fill the path with blue.
    e.Graphics.FillPath(New SolidBrush(Color.Blue), _
        text_path)

    ' Use the path as the Graphics
    ' object's clipping region.
    e.Graphics.SetClip(text_path)

    ' Draw small text on the form.
    Const inner_text = "rose tulip carnation daffodil " & _
        "peopny daisy dandelion snapdragon pansy "
    Dim inner_font As New Font( _
        New FontFamily("Times New Roman"), _
            8, FontStyle.Regular)
    Dim inner_brush As New SolidBrush(Color.Black)
    Dim inner_text_width As Single
    Dim inner_text_height As Single
    Dim x As Single
    Dim y As Integer

    ' See how big the inner string is.
    inner_text_width = e.Graphics.MeasureString( _
        inner_text, inner_font).Width
    inner_text_height = e.Graphics.MeasureString( _
        inner_text, inner_font).Height

    ' Draw the inner text.
    y = 0
    Do While y <= Me.Height
        x = -y
        Do While x <= Me.Width
            e.Graphics.DrawString( _
                inner_text, inner_font, inner_brush, x, y)
            x += inner_text_width
        Loop
        y = y + inner_text_height
    Loop
End Sub
 
Click here to compare this code to the version used for VB 6.
 
 
Copyright © 1997-2010 Rocky Mountain Computer Consulting, Inc.   All rights reserved.
  Updated