软件编程
位置:首页>> 软件编程>> C#编程>> C#常用GDI+文字操作汇总

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

作者:shichen2014  发布时间:2022-10-24 00:51:12 

标签:C#,GDI+

本文实例汇总了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#程序设计有一定的帮助。

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com