This article summarizes the C # common GDI + text operations, including the text projection, reflection, rotation and other common effects, in the development of C # application has a good practical value. Share it for everyone's reference. Specific as follows: 
 
First, the projection text
 
private void Form1_paint (object sender, PaintEventArgs e) {  //Projection text  Graphics g = this. CreateGraphics ();  Set the text output quality  g.textrenderinghint = Textrenderinghint.cleartypegridfit;  G.smoothingmode = Smoothingmode.antialias;  Font newFont = new Font ("Times New Roman", "$");  Matrix matrix = new Matrix ();  Project  Matrix. Shear ( -1.5f, 0.0f);  Zoom  Matrix. Scale (1, 0.5f);  Pan the  matrix. Translate (a);  Coordinate transformation, G.transform = matrix is applied to the drawing plane  ;  SolidBrush Graybrush = new SolidBrush (color.gray);  SolidBrush Colorbrush = new SolidBrush (color.blueviolet);  String text = "Mingrisoft";  Draw Shadow  g.drawstring (text, NewFont, Graybrush, new PointF (0));  G.resettransform ();  Draw foreground  g.drawstring (text, NewFont, Colorbrush, New PointF (0, 30));}
 
Second, the reflection of the text
 
private void Form1_paint (object sender, PaintEventArgs e) {  //Reflection text  Brush Backbrush = Brushes.gray;  Brush forebrush = brushes.black;  Font font = new Font ("Young Circle", convert.toint16 (+), fontstyle.regular);  Graphics g = this. CreateGraphics ();  String text = "Mingrisoft";  SizeF size = g.measurestring (text, font);  int PosX = (this. Width-convert.toint16 (size. Width)/2;  int PosY = (this. Height-convert.toint16 (size. Height))/2;  G.translatetransform (PosX, PosY);  int ascent = font. Fontfamily.getcellascent (font. Style);  int spacing = font. Fontfamily.getlinespacing (font. Style);  int lineheight = System.Convert.ToInt16 (font. GetHeight (g));  int height = lineheight * ascent/spacing;  GraphicsState state = G.save ();  G.scaletransform (1, -1.0f);  g.DrawString (text, font, Backbrush, 0,-height);  G.restore (state);  g.DrawString (text, font, forebrush, 0,-height);}
 
Three, the text fills the line
 
private void Form1_paint (object sender, PaintEventArgs e) {  //Use image to fill text lines  TextureBrush brush = new TextureBrush ( Image.FromFile (Application.startuppath + "\ \ Flower. jpg"));  Graphics g = e.graphics;  g.DrawString ("Mingrisoft", New Font ("Script", "Max"), Brush, new PointF (0, 0)); }
 
Four, rotate the text
 
private void Form1_paint (object sender, PaintEventArgs e) {  //rotate display text  graphics g = e.graphics;  G.smoothingmode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;  for (int i = 0; I <=; i + =)  {   //Translate the Graphics object to form center G.translatetransform (this). WIDTH/2, this. HEIGHT/2); Sets the output angle of the Graphics object G.rotatetransform (i); Set text fill color brush brush = brushes.darkviolet; Rotate the display text g.drawstring ("... Mingrisoft ", New Font (" Lucida Console ", 11f), brush, 0, 0); Restore Global Transformation matrix g.resettransform ();}  }
 
Five, the printing plate text
 
private void Form1_paint (object sender, PaintEventArgs e) {  //printing plate literal  int i = 0;  Brush Backbrush = brushes.black;  Brush forebrush = Brushes.violet;  Font font = new Font ("Times New Roman", System.Convert.ToInt16 (+), fontstyle.regular);  Graphics g = this. CreateGraphics ();  G.clear (color.white);  String text = "Mingrisoft";  SizeF size = g.measurestring (text, font);  Single PosX = (this. Width-convert.toint16 (size. Width)/2;  Single PosY = (this. Height-convert.toint16 (size. Height))/3;  while (I < convert.toint16)  {g.drawstring (text, font, Backbrush, posx-i, PosY + i); i = i + 1;  }  g.drawstring (text, font, Forebrush, PosX, PosY);}
 
It is believed that the examples mentioned in this paper will help everyone in C # programming.