<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2F2D</id>
		<title>VB.Net/2D - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2F2D"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/2D&amp;action=history"/>
		<updated>2026-04-05T09:06:18Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/2D&amp;diff=172&amp;oldid=prev</id>
		<title> в 16:40, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/2D&amp;diff=172&amp;oldid=prev"/>
				<updated>2010-05-26T16:40:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:40, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/2D&amp;diff=173&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/2D&amp;diff=173&amp;oldid=prev"/>
				<updated>2010-05-26T12:42:07Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;* [[VB.Net/2D/Arc | Arc]]&lt;br /&gt;
* [[VB.Net/2D/Area Combination | Area Combination]]&lt;br /&gt;
* [[VB.Net/2D/Arrow | Arrow]]&lt;br /&gt;
* [[VB.Net/2D/Bezier | Bezier]]&lt;br /&gt;
* [[VB.Net/2D/Bitmap | Bitmap]]&lt;br /&gt;
* [[VB.Net/2D/Bmp | Bmp]]&lt;br /&gt;
* [[VB.Net/2D/Brush | Brush]]&lt;br /&gt;
* [[VB.Net/2D/Clip | Clip]]&lt;br /&gt;
* [[VB.Net/2D/Color | Color]]&lt;br /&gt;
* [[VB.Net/2D/Curve | Curve]]&lt;br /&gt;
* [[VB.Net/2D/Drag Draw | Drag Draw]]&lt;br /&gt;
* [[VB.Net/2D/Draw Image | Draw Image]]&lt;br /&gt;
* [[VB.Net/2D/Draw String | Draw String]]&lt;br /&gt;
* [[VB.Net/2D/Ellipse | Ellipse]]&lt;br /&gt;
* [[VB.Net/2D/Fill Mode | Fill Mode]]&lt;br /&gt;
* [[VB.Net/2D/Gif | Gif]]&lt;br /&gt;
* [[VB.Net/2D/Gradient | Gradient]]&lt;br /&gt;
* [[VB.Net/2D/Graphic Path | Graphic Path]]&lt;br /&gt;
* [[VB.Net/2D/Graphic State | Graphic State]]&lt;br /&gt;
* [[VB.Net/2D/Graphics Path Iterator | Graphics Path Iterator]]&lt;br /&gt;
* [[VB.Net/2D/Hatch Brush | Hatch Brush]]&lt;br /&gt;
* [[VB.Net/2D/Icon | Icon]]&lt;br /&gt;
* [[VB.Net/2D/Image | Image]]&lt;br /&gt;
* [[VB.Net/2D/Image Animator | Image Animator]]&lt;br /&gt;
* [[VB.Net/2D/Image File | Image File]]&lt;br /&gt;
* [[VB.Net/2D/Interpolation Mode | Interpolation Mode]]&lt;br /&gt;
* [[VB.Net/2D/JPG | JPG]]&lt;br /&gt;
* [[VB.Net/2D/Line | Line]]&lt;br /&gt;
* [[VB.Net/2D/Line Alignment | Line Alignment]]&lt;br /&gt;
* [[VB.Net/2D/Line Compound | Line Compound]]&lt;br /&gt;
* [[VB.Net/2D/Line Dash | Line Dash]]&lt;br /&gt;
* [[VB.Net/2D/Line Join | Line Join]]&lt;br /&gt;
* [[VB.Net/2D/Line Smooth Mode | Line Smooth Mode]]&lt;br /&gt;
* [[VB.Net/2D/LineCaps | LineCaps]]&lt;br /&gt;
* [[VB.Net/2D/Matrix | Matrix]]&lt;br /&gt;
* [[VB.Net/2D/PNG | PNG]]&lt;br /&gt;
* [[VB.Net/2D/Paint Size | Paint Size]]&lt;br /&gt;
* [[VB.Net/2D/Path String | Path String]]&lt;br /&gt;
* [[VB.Net/2D/PathGradientBrush | PathGradientBrush]]&lt;br /&gt;
* [[VB.Net/2D/Pen | Pen]]&lt;br /&gt;
* [[VB.Net/2D/Pen Alignment | Pen Alignment]]&lt;br /&gt;
* [[VB.Net/2D/Pen Join | Pen Join]]&lt;br /&gt;
* [[VB.Net/2D/Pie | Pie]]&lt;br /&gt;
* [[VB.Net/2D/Ploygon | Ploygon]]&lt;br /&gt;
* [[VB.Net/2D/Public | Public]]&lt;br /&gt;
* [[VB.Net/2D/Rectangle | Rectangle]]&lt;br /&gt;
* [[VB.Net/2D/Region | Region]]&lt;br /&gt;
* [[VB.Net/2D/Rotate | Rotate]]&lt;br /&gt;
* [[VB.Net/2D/Scale | Scale]]&lt;br /&gt;
* [[VB.Net/2D/Shape | Shape]]&lt;br /&gt;
* [[VB.Net/2D/Shear | Shear]]&lt;br /&gt;
* [[VB.Net/2D/Smooth | Smooth]]&lt;br /&gt;
* [[VB.Net/2D/Star | Star]]&lt;br /&gt;
* [[VB.Net/2D/String Format Paint | String Format Paint]]&lt;br /&gt;
* [[VB.Net/2D/String Trim Paint | String Trim Paint]]&lt;br /&gt;
* [[VB.Net/2D/Text Contrast | Text Contrast]]&lt;br /&gt;
* [[VB.Net/2D/Text Layout | Text Layout]]&lt;br /&gt;
* [[VB.Net/2D/Text Rendering Hint | Text Rendering Hint]]&lt;br /&gt;
* [[VB.Net/2D/Texture | Texture]]&lt;br /&gt;
* [[VB.Net/2D/Texture Brush | Texture Brush]]&lt;br /&gt;
* [[VB.Net/2D/Tiff | Tiff]]&lt;br /&gt;
* [[VB.Net/2D/Transform | Transform]]&lt;br /&gt;
* [[VB.Net/2D/Translate | Translate]]&lt;br /&gt;
* [[VB.Net/2D/Wmf | Wmf]]&lt;br /&gt;
* [[VB.Net/2D/ttf File | ttf File]]&lt;br /&gt;
&lt;br /&gt;
==Demonstrating various font settings==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
        Dim myform As Form = New FrmFonts()&lt;br /&gt;
        Application.Run(myform)&lt;br /&gt;
   End Sub &amp;quot; Main&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class FrmFonts&lt;br /&gt;
   Inherits System.Windows.Forms.Form&lt;br /&gt;
#Region &amp;quot; Windows Form Designer generated code &amp;quot;&lt;br /&gt;
   Public Sub New()&lt;br /&gt;
      MyBase.New()&lt;br /&gt;
      &amp;quot;This call is required by the Windows Form Designer.&lt;br /&gt;
      InitializeComponent()&lt;br /&gt;
      &amp;quot;Add any initialization after the InitializeComponent() call&lt;br /&gt;
   End Sub&lt;br /&gt;
   &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
      If disposing Then&lt;br /&gt;
         If Not (components Is Nothing) Then&lt;br /&gt;
            components.Dispose()&lt;br /&gt;
         End If&lt;br /&gt;
      End If&lt;br /&gt;
      MyBase.Dispose(disposing)&lt;br /&gt;
   End Sub&lt;br /&gt;
   &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
   Private components As System.ruponentModel.Container&lt;br /&gt;
   &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
   &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
   &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
   &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; Private Sub InitializeComponent()&lt;br /&gt;
      &amp;quot;&lt;br /&gt;
      &amp;quot;frmFonts&lt;br /&gt;
      &amp;quot;&lt;br /&gt;
      Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)&lt;br /&gt;
      Me.ClientSize = New System.Drawing.Size(496, 117)&lt;br /&gt;
      Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D&lt;br /&gt;
      Me.Name = &amp;quot;frmFonts&amp;quot;&lt;br /&gt;
      Me.Text = &amp;quot;Fonts&amp;quot;&lt;br /&gt;
   End Sub&lt;br /&gt;
#End Region&lt;br /&gt;
   Protected Overrides Sub OnPaint( _&lt;br /&gt;
      ByVal paintEvent As PaintEventArgs)&lt;br /&gt;
      Dim graphicsObject As Graphics = paintEvent.Graphics&lt;br /&gt;
      Dim brush As SolidBrush = New SolidBrush(Color.DarkBlue)&lt;br /&gt;
      Dim style As FontStyle = FontStyle.Bold&lt;br /&gt;
      Dim arial As Font = New Font(New FontFamily(&amp;quot;Arial&amp;quot;), 12, style)&lt;br /&gt;
      graphicsObject.DrawString(arial.Name &amp;amp; &amp;quot; 12 point bold.&amp;quot;,arial, brush, 10, 10)&lt;br /&gt;
      style = FontStyle.Regular&lt;br /&gt;
      Dim timesNewRoman As Font = New Font(&amp;quot;Times New Roman&amp;quot;, 12, style)&lt;br /&gt;
      graphicsObject.DrawString(timesNewRoman.Name &amp;amp;&amp;quot; 12 point plain.&amp;quot;, timesNewRoman, brush, 10, 30)&lt;br /&gt;
      style = FontStyle.Bold Or FontStyle.Italic&lt;br /&gt;
      Dim courierNew As Font = New Font(&amp;quot;Courier New&amp;quot;,16, style)&lt;br /&gt;
      graphicsObject.DrawString(courierNew.Name &amp;amp; &amp;quot; 16 point bold and italic.&amp;quot;, courierNew, brush, 10, 54)&lt;br /&gt;
      style = FontStyle.Strikeout&lt;br /&gt;
      Dim tahoma As Font = New Font(&amp;quot;Tahoma&amp;quot;, 18, style)&lt;br /&gt;
      graphicsObject.DrawString(tahoma.Name &amp;amp; &amp;quot; 18 point strikeout.&amp;quot;, tahoma, brush, 10, 75)&lt;br /&gt;
      &lt;br /&gt;
   End Sub&lt;br /&gt;
End Class &lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Displaying font metric information==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Drawing.Text&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
        Dim myform As Form = New FrmFontMetrics()&lt;br /&gt;
        Application.Run(myform)&lt;br /&gt;
   End Sub &amp;quot; Main&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class FrmFontMetrics&lt;br /&gt;
   Inherits System.Windows.Forms.Form&lt;br /&gt;
#Region &amp;quot; Windows Form Designer generated code &amp;quot;&lt;br /&gt;
   Public Sub New()&lt;br /&gt;
      MyBase.New()&lt;br /&gt;
      &amp;quot;This call is required by the Windows Form Designer.&lt;br /&gt;
      InitializeComponent()&lt;br /&gt;
      &amp;quot;Add any initialization after the InitializeComponent() call&lt;br /&gt;
   End Sub&lt;br /&gt;
   &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
      If disposing Then&lt;br /&gt;
         If Not (components Is Nothing) Then&lt;br /&gt;
            components.Dispose()&lt;br /&gt;
         End If&lt;br /&gt;
      End If&lt;br /&gt;
      MyBase.Dispose(disposing)&lt;br /&gt;
   End Sub&lt;br /&gt;
   &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
   Private components As System.ruponentModel.Container&lt;br /&gt;
   &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
   &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
   &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
   &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; Private Sub InitializeComponent()&lt;br /&gt;
      &amp;quot;&lt;br /&gt;
      &amp;quot;frmFontMetrics&lt;br /&gt;
      &amp;quot;&lt;br /&gt;
      Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)&lt;br /&gt;
      Me.ClientSize = New System.Drawing.Size(920, 253)&lt;br /&gt;
      Me.Name = &amp;quot;frmFontMetrics&amp;quot;&lt;br /&gt;
      Me.Text = &amp;quot;Metrics&amp;quot;&lt;br /&gt;
   End Sub&lt;br /&gt;
#End Region&lt;br /&gt;
   Protected Overrides Sub OnPaint( _&lt;br /&gt;
    ByVal paintEvent As PaintEventArgs)&lt;br /&gt;
      Dim graphicsObject As Graphics = paintEvent.Graphics&lt;br /&gt;
      Dim brush As SolidBrush = New SolidBrush(Color.Red)&lt;br /&gt;
      Dim pen As Pen = New Pen(brush, Convert.ToSingle(2.5))&lt;br /&gt;
      &amp;quot; Arial font metrics&lt;br /&gt;
      Dim arial As Font = New Font(&amp;quot;Arial&amp;quot;, 12)&lt;br /&gt;
      Dim family As FontFamily = arial.FontFamily&lt;br /&gt;
      Dim sanSerif As Font = New Font(&amp;quot;Microsoft Sans Serif&amp;quot;, _&lt;br /&gt;
         14, FontStyle.Italic)&lt;br /&gt;
      pen.Color = brush.Color&lt;br /&gt;
      brush.Color = Color.DarkBlue&lt;br /&gt;
      &amp;quot; display Arial font metrics&lt;br /&gt;
      graphicsObject.DrawString(&amp;quot;Current Font: &amp;quot; &amp;amp; arial.ToString, _&lt;br /&gt;
         arial, brush, 10, 10)&lt;br /&gt;
      graphicsObject.DrawString(&amp;quot;Ascent: &amp;quot; &amp;amp; _&lt;br /&gt;
         family.GetCellAscent(FontStyle.Regular), arial, brush, _&lt;br /&gt;
          10, 30)&lt;br /&gt;
      graphicsObject.DrawString(&amp;quot;Descent: &amp;quot; &amp;amp; _&lt;br /&gt;
         family.GetCellDescent(FontStyle.Regular), arial, brush, _&lt;br /&gt;
         10, 50)&lt;br /&gt;
      graphicsObject.DrawString(&amp;quot;Height: &amp;quot; &amp;amp; family.GetEmHeight _&lt;br /&gt;
         (FontStyle.Regular), arial, brush, 10, 70)&lt;br /&gt;
      graphicsObject.DrawString(&amp;quot;Leading: &amp;quot; &amp;amp; _&lt;br /&gt;
         family.GetLineSpacing(FontStyle.Regular), arial, brush, _&lt;br /&gt;
         10, 90)&lt;br /&gt;
   End Sub  &amp;quot; OnPaint&lt;br /&gt;
End Class &lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Draw Character Outline==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System.Drawing.Drawing2D&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Drawing.Text&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Math&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
       Dim form1 As Form = New Form1()&lt;br /&gt;
       Application.Run(form1)&lt;br /&gt;
   End Sub &lt;br /&gt;
End Class&lt;br /&gt;
 &lt;br /&gt;
Public Class Form1&lt;br /&gt;
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;
        Me.ResizeRedraw = True&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint&lt;br /&gt;
        Dim txt As String = &amp;quot;www.vbex.ru&amp;quot;&lt;br /&gt;
        Dim the_font As New Font(&amp;quot;Times New Roman&amp;quot;, 50, _&lt;br /&gt;
            FontStyle.Bold, GraphicsUnit.Pixel)&lt;br /&gt;
        Dim layout_rect As New RectangleF(0, 0, _&lt;br /&gt;
            Me.ClientSize.Width, Me.ClientSize.Height)&lt;br /&gt;
        Dim string_format As New StringFormat&lt;br /&gt;
        string_format.LineAlignment = StringAlignment.Center&lt;br /&gt;
        string_format.Alignment = StringAlignment.Center&lt;br /&gt;
        e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit&lt;br /&gt;
        Dim character_ranges(txt.Length - 1) As CharacterRange&lt;br /&gt;
        For i As Integer = 0 To txt.Length - 1&lt;br /&gt;
            character_ranges(i) = New CharacterRange(i, 1)&lt;br /&gt;
        Next i&lt;br /&gt;
        string_format.SetMeasurableCharacterRanges(character_ranges)&lt;br /&gt;
        Dim character_regions() As Region = _&lt;br /&gt;
            e.Graphics.MeasureCharacterRanges(txt, _&lt;br /&gt;
            the_font, layout_rect, string_format)&lt;br /&gt;
        For Each rgn As Region In character_regions&lt;br /&gt;
            Dim character_bounds As RectangleF = rgn.GetBounds(e.Graphics)&lt;br /&gt;
            Dim character_rect As Rectangle = _&lt;br /&gt;
                Rectangle.Round(character_bounds)&lt;br /&gt;
            e.Graphics.DrawRectangle(Pens.White, character_rect)&lt;br /&gt;
        Next rgn&lt;br /&gt;
        e.Graphics.DrawString(txt, the_font, Brushes.Black, _&lt;br /&gt;
            layout_rect, string_format)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()&amp;gt; _&lt;br /&gt;
Partial Public Class Form1&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerNonUserCode()&amp;gt; _&lt;br /&gt;
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing AndAlso components IsNot Nothing Then&lt;br /&gt;
            components.Dispose()&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; _&lt;br /&gt;
    Private Sub InitializeComponent()&lt;br /&gt;
        Me.SuspendLayout()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;Form1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)&lt;br /&gt;
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(200, 200)&lt;br /&gt;
        Me.Name = &amp;quot;Form1&amp;quot;&lt;br /&gt;
        Me.Text = &amp;quot;&amp;quot;&lt;br /&gt;
        Me.ResumeLayout(False)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Font Metrics Illustration==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.Drawing.Drawing2D&lt;br /&gt;
Imports System.Drawing.Text&lt;br /&gt;
Imports System.Drawing.Imaging&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
  Shared Sub Main()&lt;br /&gt;
     Dim form1 As Form1 = new Form1&lt;br /&gt;
     Application.Run(form1)&lt;br /&gt;
  End Sub&lt;br /&gt;
  &lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Public Class Form1&lt;br /&gt;
  Inherits System.Windows.Forms.Form&lt;br /&gt;
#Region &amp;quot; Windows Form Designer generated code &amp;quot;&lt;br /&gt;
  Public Sub New()&lt;br /&gt;
    MyBase.New()&lt;br /&gt;
    &amp;quot;This call is required by the Windows Form Designer.&lt;br /&gt;
    InitializeComponent()&lt;br /&gt;
    &amp;quot;Add any initialization after the InitializeComponent() call&lt;br /&gt;
  End Sub&lt;br /&gt;
  &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
  Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
    If disposing Then&lt;br /&gt;
      If Not (components Is Nothing) Then&lt;br /&gt;
        components.Dispose()&lt;br /&gt;
      End If&lt;br /&gt;
    End If&lt;br /&gt;
    MyBase.Dispose(disposing)&lt;br /&gt;
  End Sub&lt;br /&gt;
  &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
  Private components As System.ruponentModel.IContainer&lt;br /&gt;
  &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
  &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
  &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
  &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; Private Sub InitializeComponent()&lt;br /&gt;
    Me.SuspendLayout()&lt;br /&gt;
    &amp;quot;&lt;br /&gt;
    &amp;quot;Form1&lt;br /&gt;
    &amp;quot;&lt;br /&gt;
    Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)&lt;br /&gt;
    Me.ClientSize = New System.Drawing.Size(492, 273)&lt;br /&gt;
    Me.MaximizeBox = False&lt;br /&gt;
    Me.MinimizeBox = False&lt;br /&gt;
    Me.Name = &amp;quot;Form1&amp;quot;&lt;br /&gt;
    Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen&lt;br /&gt;
    Me.Text = &amp;quot;Form1&amp;quot;&lt;br /&gt;
    Me.ResumeLayout(False)&lt;br /&gt;
  End Sub&lt;br /&gt;
#End Region&lt;br /&gt;
  Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)&lt;br /&gt;
    Dim ff As FontFamily = New FontFamily(&amp;quot;Arial Black&amp;quot;)&lt;br /&gt;
    Dim fnt As Font = New Font(ff, 75, FontStyle.Regular, GraphicsUnit.Pixel)&lt;br /&gt;
    Dim G As Graphics = Me.CreateGraphics()&lt;br /&gt;
    G.SmoothingMode = SmoothingMode.AntiAlias&lt;br /&gt;
    G.TextRenderingHint = TextRenderingHint.AntiAlias&lt;br /&gt;
    Dim LineSpace As Int32 = CInt(ff.GetLineSpacing(fnt.Style) * _&lt;br /&gt;
                          fnt.Size / ff.GetEmHeight(fnt.Style))&lt;br /&gt;
    Dim Descent As Int32 = CInt(ff.GetCellDescent(fnt.Style) * _&lt;br /&gt;
                          fnt.Size / ff.GetEmHeight(fnt.Style))&lt;br /&gt;
    Dim Ascent As Int32 = CInt(ff.GetCellAscent(fnt.Style) * _&lt;br /&gt;
                          fnt.Size / ff.GetEmHeight(fnt.Style))&lt;br /&gt;
    Dim BaseLineStart As Point = New Point(15, CInt(Me.Height * 3 / 5))&lt;br /&gt;
    Dim BaseLineEnd As Point = New Point(Me.Width - 15, CInt(Me.Height * 3 / 5))&lt;br /&gt;
    Dim StringPoint As Point = New Point(75, CInt(BaseLineStart.Y - Ascent))&lt;br /&gt;
    G.Clear(Color.AliceBlue)&lt;br /&gt;
    G.DrawString(&amp;quot;A j Q&amp;quot;, fnt, Brushes.Blue, Point.op_Implicit(StringPoint))&lt;br /&gt;
    G.DrawLine(Pens.Black, BaseLineStart, BaseLineEnd)&lt;br /&gt;
    Dim LineSize As Size = New Size(0, LineSpace)&lt;br /&gt;
    Dim AscentSize As Size = New Size(0, Ascent)&lt;br /&gt;
    Dim DescentSize As Size = New Size(0, Descent)&lt;br /&gt;
    G.DrawLine(Pens.Black, Point.op_Subtraction(BaseLineStart, LineSize), _&lt;br /&gt;
                           Point.op_Subtraction(BaseLineEnd, LineSize))&lt;br /&gt;
    G.DrawLine(Pens.Red, Point.op_Subtraction(BaseLineStart, AscentSize), _&lt;br /&gt;
                           Point.op_Subtraction(BaseLineEnd, AscentSize))&lt;br /&gt;
    G.DrawLine(Pens.DarkGreen, Point.op_Addition(BaseLineStart, DescentSize), _&lt;br /&gt;
                                 Point.op_Addition(BaseLineEnd, DescentSize))&lt;br /&gt;
    Dim AnnoFont As Font = New Font(&amp;quot;Arial&amp;quot;, 10)&lt;br /&gt;
    G.DrawString(&amp;quot;Line Space = &amp;quot; + LineSpace.ToString(), AnnoFont, _&lt;br /&gt;
      Brushes.Black, _&lt;br /&gt;
      20, _&lt;br /&gt;
      CInt(BaseLineStart.Y - LineSpace - 12))&lt;br /&gt;
    G.DrawString(&amp;quot;Ascent = &amp;quot; + Ascent.ToString(), AnnoFont, _&lt;br /&gt;
      Brushes.Red, _&lt;br /&gt;
      250, _&lt;br /&gt;
      CInt(BaseLineStart.Y - Ascent - 12))&lt;br /&gt;
    G.DrawString(&amp;quot;Descent = &amp;quot; + Descent.ToString(), AnnoFont, _&lt;br /&gt;
      Brushes.DarkGreen, _&lt;br /&gt;
      350, _&lt;br /&gt;
      CInt(BaseLineStart.Y + Descent / 8))&lt;br /&gt;
  End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Outline Fonts Demo==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.ruponentModel&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Data&lt;br /&gt;
Imports System.Configuration&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.Drawing.Drawing2D&lt;br /&gt;
Imports System.Drawing.Text&lt;br /&gt;
Imports System.Globalization&lt;br /&gt;
Imports System.Text&lt;br /&gt;
Imports System.Collections&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    Shared Sub Main()&lt;br /&gt;
        Dim myform As Form = New OutlineFontsForm()&lt;br /&gt;
        Application.Run(myform)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class OutlineFontsForm&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
#Region &amp;quot; Windows Form Designer generated code &amp;quot;&lt;br /&gt;
    Public Sub New()&lt;br /&gt;
        MyBase.New()&lt;br /&gt;
        &amp;quot;This call is required by the Windows Form Designer.&lt;br /&gt;
        InitializeComponent()&lt;br /&gt;
        &amp;quot;Add any initialization after the InitializeComponent() call&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing Then&lt;br /&gt;
            If Not (components Is Nothing) Then&lt;br /&gt;
                components.Dispose()&lt;br /&gt;
            End If&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; Private Sub InitializeComponent()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;OutlineFontsForm&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleBaseSize = New System.Drawing.Size(46, 109)&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(292, 266)&lt;br /&gt;
        Me.Font = New System.Drawing.Font(&amp;quot;Microsoft Sans Serif&amp;quot;, 72.0!)&lt;br /&gt;
        Me.Name = &amp;quot;OutlineFontsForm&amp;quot;&lt;br /&gt;
        Me.Text = &amp;quot;OutlineFontsForm&amp;quot;&lt;br /&gt;
    End Sub&lt;br /&gt;
#End Region&lt;br /&gt;
&lt;br /&gt;
    Private Function GetStringPath(ByVal s As String, ByVal dpi As Single, ByVal rect As RectangleF, ByVal font As Font, ByVal format As StringFormat) As graphicspath&lt;br /&gt;
        Dim path As GraphicsPath = New GraphicsPath()&lt;br /&gt;
        Dim emSize As Single = dpi * font.SizeInPoints / 72&lt;br /&gt;
        path.AddString(s, font.FontFamily, CInt(font.Style), emSize, rect, format)&lt;br /&gt;
        Return path&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Private Sub OutlineFontsForm_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint&lt;br /&gt;
        Dim g As Graphics = e.Graphics&lt;br /&gt;
        Dim s As String = &amp;quot;String String String&amp;quot;&lt;br /&gt;
        Dim rect As RectangleF = RectangleF.op_Implicit(Me.ClientRectangle)&lt;br /&gt;
        Dim font As Font = Me.Font&lt;br /&gt;
        Dim format As StringFormat = StringFormat.GenericTypographic&lt;br /&gt;
        Dim dpi As Single = g.DpiY&lt;br /&gt;
        Dim path As GraphicsPath = GetStringPath(s, dpi, rect, font, format)&lt;br /&gt;
        g.DrawPath(Pens.Black, path)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Outline the Font Metrics==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System.Drawing.Drawing2D&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Drawing.Text&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Math&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
       Dim form1 As Form = New Form1()&lt;br /&gt;
       Application.Run(form1)&lt;br /&gt;
   End Sub &lt;br /&gt;
End Class&lt;br /&gt;
 &lt;br /&gt;
Public Class Form1&lt;br /&gt;
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br /&gt;
        Me.ResizeRedraw = True&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint&lt;br /&gt;
        Dim txt As String = &amp;quot;www.vbex.ru&amp;quot;&lt;br /&gt;
        Dim layout_rect As New RectangleF(0, 0, _&lt;br /&gt;
            Me.ClientSize.Width, Me.ClientSize.Height)&lt;br /&gt;
        Dim string_format As New StringFormat&lt;br /&gt;
        string_format.LineAlignment = StringAlignment.Center&lt;br /&gt;
        string_format.Alignment = StringAlignment.Center&lt;br /&gt;
        Dim the_font As Font&lt;br /&gt;
        e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit&lt;br /&gt;
        the_font = New Font(&amp;quot;Times New Roman&amp;quot;, 80, FontStyle.Bold, GraphicsUnit.Pixel)&lt;br /&gt;
&lt;br /&gt;
        Dim character_ranges(txt.Length - 1) As CharacterRange&lt;br /&gt;
        For i As Integer = 0 To txt.Length - 1&lt;br /&gt;
            character_ranges(i) = New CharacterRange(i, 1)&lt;br /&gt;
        Next i&lt;br /&gt;
        string_format.SetMeasurableCharacterRanges(character_ranges)&lt;br /&gt;
        Dim character_regions() As Region = _&lt;br /&gt;
            e.Graphics.MeasureCharacterRanges(txt, _&lt;br /&gt;
            the_font, layout_rect, string_format)&lt;br /&gt;
        Dim em_height As Integer = the_font.FontFamily.GetEmHeight(FontStyle.Bold)&lt;br /&gt;
        Dim em_height_pix As Single = the_font.Size&lt;br /&gt;
        Dim design_to_pixels As Single = the_font.Size / em_height&lt;br /&gt;
        Dim ascent As Integer = the_font.FontFamily.GetCellAscent(FontStyle.Bold)&lt;br /&gt;
        Dim ascent_pix As Single = ascent * design_to_pixels&lt;br /&gt;
        Dim descent As Integer = the_font.FontFamily.GetCellDescent(FontStyle.Bold)&lt;br /&gt;
        Dim descent_pix As Single = descent * design_to_pixels&lt;br /&gt;
        Dim cell_height_pix As Single = ascent_pix + descent_pix&lt;br /&gt;
        Dim internal_leading_pix As Single = cell_height_pix - em_height_pix&lt;br /&gt;
        Dim line_spacing As Integer = the_font.FontFamily.GetLineSpacing(FontStyle.Bold)&lt;br /&gt;
        Dim line_spacing_pix As Single = line_spacing * design_to_pixels&lt;br /&gt;
        Dim external_leading_pix As Single = line_spacing_pix - cell_height_pix&lt;br /&gt;
        For Each rgn As Region In character_regions&lt;br /&gt;
            Dim character_bounds As RectangleF = rgn.GetBounds(e.Graphics)&lt;br /&gt;
            Dim character_rect As Rectangle = _&lt;br /&gt;
                Rectangle.Round(character_bounds)&lt;br /&gt;
            e.Graphics.DrawRectangle(Pens.Black, character_rect)&lt;br /&gt;
            e.Graphics.DrawLine(Pens.White, _&lt;br /&gt;
                character_rect.X, _&lt;br /&gt;
                character_rect.Y + internal_leading_pix, _&lt;br /&gt;
                character_rect.Right, _&lt;br /&gt;
                character_rect.Y + internal_leading_pix)&lt;br /&gt;
            e.Graphics.DrawLine(Pens.Yellow, _&lt;br /&gt;
                character_rect.X, _&lt;br /&gt;
                character_rect.Y + ascent_pix, _&lt;br /&gt;
                character_rect.Right, _&lt;br /&gt;
                character_rect.Y + ascent_pix)&lt;br /&gt;
            e.Graphics.DrawLine(Pens.Orange, _&lt;br /&gt;
                character_rect.X, _&lt;br /&gt;
                character_rect.Y + ascent_pix + descent_pix, _&lt;br /&gt;
                character_rect.Right, _&lt;br /&gt;
                character_rect.Y + ascent_pix + descent_pix)&lt;br /&gt;
            e.Graphics.FillRectangle(Brushes.Red, _&lt;br /&gt;
                character_rect.X, _&lt;br /&gt;
                character_rect.Y + ascent_pix + descent_pix, _&lt;br /&gt;
                character_rect.Width, _&lt;br /&gt;
                external_leading_pix)&lt;br /&gt;
            Console.WriteLine( _&lt;br /&gt;
                character_rect.X &amp;amp; &amp;quot;, &amp;quot; &amp;amp; _&lt;br /&gt;
                character_rect.Y + ascent_pix + descent_pix &amp;amp; &amp;quot;, &amp;quot; &amp;amp; _&lt;br /&gt;
                character_rect.Width &amp;amp; &amp;quot;, &amp;quot; &amp;amp; _&lt;br /&gt;
                external_leading_pix)&lt;br /&gt;
        Next rgn&lt;br /&gt;
        e.Graphics.DrawString(txt, the_font, Brushes.Black, _&lt;br /&gt;
            layout_rect, string_format)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()&amp;gt; _&lt;br /&gt;
Partial Public Class Form1&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerNonUserCode()&amp;gt; _&lt;br /&gt;
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing AndAlso components IsNot Nothing Then&lt;br /&gt;
            components.Dispose()&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; _&lt;br /&gt;
    Private Sub InitializeComponent()&lt;br /&gt;
        Me.SuspendLayout()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;Form1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)&lt;br /&gt;
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(200, 200)&lt;br /&gt;
        Me.Name = &amp;quot;Form1&amp;quot;&lt;br /&gt;
        Me.Text = &amp;quot;&amp;quot;&lt;br /&gt;
        Me.ResumeLayout(False)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shadow Fonts Demo==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.ruponentModel&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Data&lt;br /&gt;
Imports System.Configuration&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.Drawing.Drawing2D&lt;br /&gt;
Imports System.Drawing.Text&lt;br /&gt;
Imports System.Globalization&lt;br /&gt;
Imports System.Text&lt;br /&gt;
Imports System.Collections&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    Shared Sub Main()&lt;br /&gt;
        Dim myform As Form = New ShadowFontsForm()&lt;br /&gt;
        Application.Run(myform)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
Public Class ShadowFontsForm&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
#Region &amp;quot; Windows Form Designer generated code &amp;quot;&lt;br /&gt;
    Public Sub New()&lt;br /&gt;
        MyBase.New()&lt;br /&gt;
        &amp;quot;This call is required by the Windows Form Designer.&lt;br /&gt;
        InitializeComponent()&lt;br /&gt;
        &amp;quot;Add any initialization after the InitializeComponent() call&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing Then&lt;br /&gt;
            If Not (components Is Nothing) Then&lt;br /&gt;
                components.Dispose()&lt;br /&gt;
            End If&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; Private Sub InitializeComponent()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;ShadowFontsForm&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleBaseSize = New System.Drawing.Size(46, 109)&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(292, 266)&lt;br /&gt;
        Me.Font = New System.Drawing.Font(&amp;quot;Microsoft Sans Serif&amp;quot;, 72.0!)&lt;br /&gt;
        Me.Name = &amp;quot;ShadowFontsForm&amp;quot;&lt;br /&gt;
        Me.Text = &amp;quot;ShadowFontsForm&amp;quot;&lt;br /&gt;
    End Sub&lt;br /&gt;
#End Region&lt;br /&gt;
&lt;br /&gt;
    Private Function GetStringPath(ByVal s As String, ByVal dpi As Single, ByVal rect As RectangleF, ByVal font As Font, ByVal format As StringFormat) As GraphicsPath&lt;br /&gt;
        Dim path As GraphicsPath = New GraphicsPath()&lt;br /&gt;
        Dim emSize As Single = dpi * font.SizeInPoints / 72&lt;br /&gt;
        path.AddString(s, font.FontFamily, CInt(font.Style), emSize, rect, format)&lt;br /&gt;
        Return path&lt;br /&gt;
    End Function&lt;br /&gt;
&lt;br /&gt;
    Private Sub ShadowFontsForm_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint&lt;br /&gt;
        Dim g As Graphics = e.Graphics&lt;br /&gt;
        Dim s As String = &amp;quot;String String String String String&amp;quot;&lt;br /&gt;
        Dim offset As Single = 4&lt;br /&gt;
        Dim size As SizeF = New SizeF(Me.ClientRectangle.Width - offset, Me.ClientRectangle.Height - offset)&lt;br /&gt;
        Dim rectShadow As RectangleF = New RectangleF(offset, offset, size.Width, size.Height)&lt;br /&gt;
        Dim rect As RectangleF = New RectangleF(0, 0, size.Width, size.Height)&lt;br /&gt;
        Dim font As Font = Me.Font&lt;br /&gt;
        Dim format As StringFormat = StringFormat.GenericTypographic&lt;br /&gt;
        Dim dpi As Single = g.DpiY&lt;br /&gt;
        Dim pathShadow As GraphicsPath = GetStringPath(s, dpi, rectShadow, font, format)&lt;br /&gt;
        Dim path As GraphicsPath = GetStringPath(s, dpi, rect, font, format)&lt;br /&gt;
        g.FillPath(Brushes.Black, pathShadow)&lt;br /&gt;
        g.FillPath(Brushes.Red, path)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use Default Frame Font==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.ruponentModel&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    &lt;br /&gt;
    Shared Sub Main(ByVal args As String())&lt;br /&gt;
        Dim myform As Form = New Form1()&lt;br /&gt;
        Application.Run(myform)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
Public Class Form1&lt;br /&gt;
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint&lt;br /&gt;
        e.Graphics.DrawString(&amp;quot;www.vbex.ru&amp;quot;, Me.Font, Brushes.Black, 10, 100)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()&amp;gt; _&lt;br /&gt;
Partial Public Class Form1&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerNonUserCode()&amp;gt; _&lt;br /&gt;
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing AndAlso components IsNot Nothing Then&lt;br /&gt;
            components.Dispose()&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; _&lt;br /&gt;
    Private Sub InitializeComponent()&lt;br /&gt;
        Me.SuspendLayout()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;Form1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)&lt;br /&gt;
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(194, 117)&lt;br /&gt;
        Me.Name = &amp;quot;Form1&amp;quot;&lt;br /&gt;
        Me.Text = &amp;quot;Form1&amp;quot;&lt;br /&gt;
        Me.ResumeLayout(False)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>