Tall in the Center : Text « 2D Graphics « C# / C Sharp

Home
C# / C Sharp
1.2D Graphics
2.Class Interface
3.Collections Data Structure
4.Components
5.Data Types
6.Database ADO.net
7.Design Patterns
8.Development Class
9.Event
10.File Stream
11.Generics
12.GUI Windows Form
13.Language Basics
14.LINQ
15.Network
16.Office
17.Reflection
18.Regular Expressions
19.Security
20.Services Event
21.Thread
22.Web Services
23.Windows
24.Windows Presentation Foundation
25.XML
26.XML LINQ
C# / C Sharp by API
C# / CSharp Tutorial
C# / CSharp Open Source
C# / C Sharp » 2D Graphics » TextScreenshots 
Tall in the Center
 

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
   
class FontMenuForm: Form
{
     protected string strText = "Tall in the Center";
     protected Font font = new Font("Times New Roman"24);
   
     public static void Main()
     {
          Application.Run(new FontMenuForm());
     }
     public FontMenuForm()
     {
          ResizeRedraw = true;
     }
     protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
     {
          GraphicsPath path = new GraphicsPath();
          float fFontSize = PointsToPageUnits(grfx, font);
   
          path.AddString(strText, font.FontFamily, (intfont.Style,
                         fFontSize, new PointF(00)new StringFormat());
   
          RectangleF rectf = path.GetBounds();
   
          path.Transform(new Matrix(1001
                                    -(rectf.Left + rectf.Right2,
                                    -(rectf.Top + rectf.Bottom2));
          rectf = path.GetBounds();
          PointF[] aptf = path.PathPoints;
   
          for (int i = 0; i < aptf.Length; i++)
               aptf[i].Y *= (rectf.Width - Math.Abs(aptf[i].X)) 
                                                                 rectf.Width; 
          path = new GraphicsPath(aptf, path.PathTypes);
   
          grfx.TranslateTransform(cx / 2, cy / 2);
          grfx.FillPath(new SolidBrush(clr), path);

                                            
     }
     public float GetAscent(Graphics grfx, Font font)
     {
          return font.GetHeight(grfx
                    font.FontFamily.GetCellAscent(font.Style/
                         font.FontFamily.GetLineSpacing(font.Style);
     }
     public float GetDescent(Graphics grfx, Font font)
     {
          return font.GetHeight(grfx
                    font.FontFamily.GetCellDescent(font.Style/
                         font.FontFamily.GetLineSpacing(font.Style);
     }
     public float PointsToPageUnits(Graphics grfx, Font font)
     {
          float fFontSize;
   
          if (grfx.PageUnit == GraphicsUnit.Display)
               fFontSize = 100 * font.SizeInPoints / 72;
          else
               fFontSize = grfx.DpiX * font.SizeInPoints / 72;
   
          return fFontSize;
     }
}

 
Related examples in the same category
1.Center each line of text horizontally and verticallyCenter each line of text horizontally and vertically
2.Text string's containing rectangleText string's containing rectangle
3.Draw Vertical String TextDraw Vertical String Text
4.Deal with Tab and New Line in Painting StringDeal with Tab and New Line in Painting String
5.String Format based on Tab info dataString Format based on Tab info data
6.Draw the string, using the rectangle as a bounding boxDraw the string, using the rectangle as a bounding box
7.Draw rectangle and string insideDraw rectangle and string inside
8.Engrave
9.Emboss
10.Clip Text
11.Draw multiline text: auto wrapDraw multiline text: auto wrap
12.Draw string with new font and solid brushDraw string with new font and solid brush
13.Text RotateText Rotate
14.Text FormatText Format
15.Draw line and stringDraw line and string
16.Text Rotate 2Text Rotate 2
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.