这篇文章主要介绍了C#常用GDI+文字操作,包括文字投影、倒影、旋转等特效,对于提升程序界面的视觉效果有很大的用处。
本文实例汇总了C#常用GDI+文字操作,包含了文字的投影、倒影、旋转等常见的效果,在进行C#应用程序开发中有不错的实用价值。分享给大家供大家参考之用。具体如下:
一、投影文字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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));
}
|
二、倒影文字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
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);
}
|
三、文字填充线条
1 2 3 4 5 6 7 |
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));
}
|
四、旋转文字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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();
}
}
|
五、印版文字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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#程序设计有一定的帮助。
标签:文字,Font,C#,text,Graphics,汇总,new,GDI,font From: https://www.cnblogs.com/soliang/p/18047143