博客园  :: 首页  :: 新随笔  :: 管理

倒影文字实现

Posted on 2008-09-25 17:24  tianfu  阅读(377)  评论(0编辑  收藏  举报
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 = "博客园";
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);
}