winform实现画笔功能需要使用pen对象,此篇文章本人用的paint绘图事件在窗体上进行绘画,其中省去了Bitmap。代码如下 :
private void Form1_Paint(object sender, PaintEventArgs e)
{
Pen p1 = new Pen(Color.Red,2);
Point[] ps =
{
new Point(20,20),
new Point(100,20),
new Point(130,100),
new Point(20,200),
};
// 窗体绘制事件
// 1 创建绘制对象
Graphics g = this.CreateGraphics();
// 2多边形:参数1 画笔, 参数2 点的坐标数组
g.DrawPolygon(p1, ps);
// 3 绘制填充颜色的多边形
// 填充的绘制参数1 是画笔颜色,参数2 数组
g.FillPolygon(Brushes.Green, ps);
// 4 绘制字符串
string t1 = "你好";
// 参数1 是字体类型 参数2是字体大小 参数3是字体的粗细或者斜体
Font f1 = new Font("楷体", 20, FontStyle.Italic);
Brush b1 = new SolidBrush(Color.Red);// 颜色
// DrawString绘制字符串 参数1: 要绘制的字符串 参数2: 定义字符串的文本格式 参数3: 确定所绘制文本的颜色和纹理 参数4和参数五: 绘制文本的X轴和Y轴
g.DrawString(t1, f1,b1, 250, 100);
// 5 绘制椭圆
// 参数1是画笔 参数2是矩形
g.DrawEllipse(p1, new Rectangle(0, 0, 400, 200)); // 边框
g.FillEllipse(Brushes.Orange, new Rectangle(0, 0, 400, 200));// 设置填充
// 6 绘制渐变颜色效果的
// 线性渐变的笔刷
LinearGradientBrush l = new LinearGradientBrush
(
new Point(0, 0),
new Point(100, 100),
Color.Red,
Color.Blue
);
e.Graphics.FillEllipse(l, new Rectangle(0, 200, 100, 100));
e.Dispose();
e.Graphics.Dispose();
}