首页 > 编程 > C# > 正文

C#常用GDI+文字操作汇总

2020-01-24 02:28:35
字体:
来源:转载
供稿:网友

本文实例汇总了C#常用GDI+文字操作,包含了文字的投影、倒影、旋转等常见的效果,在进行C#应用程序开发中有不错的实用价值。分享给大家供大家参考之用。具体如下:

一、投影文字

private void Form1_Paint(object sender, PaintEventArgs e){  //投影文字  Graphics g = this.CreateGraphics();  //设置文本输出质量  g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;  g.SmoothingMode = SmoothingMode.AntiAlias;  Font newFont = new Font("Times New Roman", 48);  Matrix matrix = new Matrix();  //投射  matrix.Shear(-1.5f, 0.0f);  //缩放  matrix.Scale(1, 0.5f);  //平移  matrix.Translate(130, 88);  //对绘图平面实施坐标变换、、  g.Transform = matrix;  SolidBrush grayBrush = new SolidBrush(Color.Gray);  SolidBrush colorBrush = new SolidBrush(Color.BlueViolet);  string text = "MINGRISOFT";  //绘制阴影  g.DrawString(text, newFont, grayBrush, new PointF(0, 30));  g.ResetTransform();  //绘制前景  g.DrawString(text, newFont, colorBrush, new PointF(0, 30));}

二、倒影文字

private void Form1_Paint(object sender, PaintEventArgs e){  //倒影文字  Brush backBrush = Brushes.Gray;  Brush foreBrush = Brushes.Black;  Font font = new Font("幼圆", Convert.ToInt16(40), 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);}

三、文字填充线条

private void Form1_Paint(object sender, PaintEventArgs e){  //使用图像填充文字线条  TextureBrush brush = new TextureBrush(Image.FromFile(Application.StartupPath + "//花.jpg"));  Graphics g = e.Graphics;  g.DrawString("MINGRISOFT", new Font("隶书", 60), brush, new PointF(0, 0)); }

四、旋转文字

private void Form1_Paint(object sender, PaintEventArgs e){  //旋转显示文字  Graphics g = e.Graphics;  g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;  for (int i = 0; i <= 360; i += 10)  {   //平移Graphics对象到窗体中心 g.TranslateTransform(this.Width / 2, this.Height / 2); //设置Graphics对象的输出角度 g.RotateTransform(i); //设置文字填充颜色 Brush brush = Brushes.DarkViolet; //旋转显示文字 g.DrawString("......MINGRISOFT", new Font("Lucida Console", 11f), brush, 0, 0); //恢复全局变换矩阵 g.ResetTransform();  }}

五、印版文字

private void Form1_Paint(object sender, PaintEventArgs e){  //印版文字  int i = 0;  Brush backBrush = Brushes.Black;  Brush foreBrush = Brushes.Violet;  Font font = new Font("Times New Roman", System.Convert.ToInt16(40), 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(20))  { g.DrawString(text, font, backBrush, posX - i, posY + i); i = i + 1;  }  g.DrawString(text, font, foreBrush, posX, posY);}

相信本文所述实例对大家的C#程序设计有一定的帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表