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

来源:互联网 发布:淘宝不同意退款怎么办 编辑:程序博客网 时间:2024/06/06 02:12

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

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

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

这里写图片描述

要实现上图的效果,需要用到一点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上绘制的文字轮廓。

这里写图片描述

实现上图效果的代码:

            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);
原创粉丝点击