C#学习笔记:在控件上绘制文字

对于像Label、Button、TextBox等控件,它们本身就具有文本显示功能,显示文字自然不是问题。但是对于PictureBox、Panel等控件,它们不具备文本显示的功能,而我又想让他们显示文字,这就需要多动一些脑筋了。有人会说,如果要在PictureBox上显示文字,直接在PictureBox上放一个Label不就得了吗?当然,这是可以的,而且还挺方便的。但是如果要做一些看起来更酷的文字的话,这种方法就不管用了。下面介绍图像文字和图形文字的绘制方法。

一、在控件上绘制图像文字

所谓图像文字就是平常我们看到的那种,文字是由点阵填充的。如下图,在一个PictureBox上绘制几个英文字母。

C#学习笔记:在控件上绘制文字_第1张图片

要实现上图的效果,需要用到一点GDI的知识。下面是实现的代码:

            //创建一个图形,该图形绘制在pictureBox1上
            Graphics text = pictureBox1.CreateGraphics();

            //创建一个画刷,颜色是纯色
            Brush brush = new SolidBrush(Color.FromArgb(0, 255, 255));
            //选择字体、字号、风格
            Font font = new Font("Adobe Gothic Std", 72f, FontStyle.Bold);
            //在位置(150,200)处绘制文字
            text.DrawString("OpenGL", font, brush, 150, 200);

二、在控件上绘制文字的轮廓

下图显示的是在pictureBox上绘制的文字轮廓。

C#学习笔记:在控件上绘制文字_第2张图片

实现上图效果的代码:


            Graphics g = pictureBox1.CreateGraphics();
            Brush brush = new SolidBrush(Color.FromArgb(255, 255, 0));
            //创建一个图形路径
            GraphicsPath path = new GraphicsPath(FillMode.Winding);
            //向路径中添加字符串
            path.AddString("纷纷OpenGL", new FontFamily("华文新魏"), 1, 108f, new Point(150, 250), new StringFormat(StringFormatFlags.LineLimit));

            //绘制文字的轮廓
            g.DrawPath(new Pen(brush), path);

你可能感兴趣的:(C#)