drawlines( 二 )


1可以通过传送一种颜色,2或者传送一个画笔,这两个构造函数都会生成一个像素宽的钢笔 。3还可以传送一种颜色或画笔,4一个表示钢笔宽度的 float 类型的值 。(该宽度必须是一个 float 类型的值,以防执行绘图操作的 Graphics 对象使用非默认的单位,例如毫米或英寸,例如可以指定宽度是英寸的某个分数) 。例如,可以构造如下的钢笔∶
Brush brickBrush = new HatchBrush(HatchStyle.DiagonalBrick,Color.DarkGoldenrod, Color.Cyan);
Pen solidBluePen = new Pen(Color.FromArgb(0,0,255));
Pen solidWideBluePen = new Pen(Color.Blue, 4);
Pen brickPen = new Pen(brickBrush);
Pen brickWidePen = new Pen(brickBrush, 10);
另外,为了快速构造钢笔,还可以使用类 System.Drawing.Pens,它与Brushes 类一样,包含许多存储好的钢笔 。这些钢笔的宽度都是一个像素,使用通常的1Web安全颜色,这样就可以用下述方式构建一个钢第∶
Pen solidYellowPen = Pens.Yellow;
绘制图形和线条
前面介绍了在屏幕上绘制规定的图形所需要的所有基类和对象 。下面复习一些 Graphics类可以使用的绘图方法,用一个小示例来介绍几个画笔和钢笔 。
System.Drawing.Graphics 有很多方法,利用这些方法可以绘制各种线条、空心图形和实心图形
方法 常见参数 绘制的图形
DrawLine 钢笔、起点和终点 一段直线
DrawRectangle 钢笔、位置和大小 空心矩形
DrawEllipse 钢笔、位置和大小 空心椭圆
FillRectangle 画笔、位置和大小 实心矩形
FillELlipse 画笔、位置和大小 实心椭圆
DrawLines 钢笔、点数组 一组线,把数组中的每个点按顺序连接起来
DrawBezier 钢笔、4个点 通过两个端点的一条光滑曲线,剩余的两个点用于控制曲线的形状
DrawCurve 钢笔、点数组 通过点的一条光滑曲线
DrawArc 钢笔、矩形、两个角 由角度定义的矩形中圆的一部分
DrawClosedCurve 钢笔、点数组 与 DrawCurve 一样,但还要绘制一条用以闭合曲线的直线
DrawPie 钢笔、矩形、两个角 矩形中的空心楔形
FillIPie 画笔、矩形、两个角 矩形中的实心楔形
DrawPolygon 钢笔、点数组 与 DrawLines 一样,但还要连接第一点和最后一点,以闭合绘制的图形
using System;
using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;
using System.Drawing.Drawing2D;using System.Text;
using System.Windows.Forms;
//接着是 Form1 类中的一些额外字段,其中包含了要绘制图形的位置信息,以及要使用的//中钢笔和画笔∶
private Rectangle rectangleBounds = new Rectangle(new Point(0,0),
new Size(200,200));
private Rectangle ellipseBounds = new Rectangle(new Point(50,200),
new Size(200,150));
private Pen bluePen = new Pen(Color.Blue, 3);private Pen redPen = new Pen(Color.Red, 2);private Brush solidAzureBrush = Brushes.Azure;
private Brush solidYellowBrush = new SolidBrush(Color.Yellow);
static private Brush brickBrush = new HatchBrush(HatchStyle.DiagonalBrick,
Color.DarkGoldenrod, Color.Cyan);
private Pen brickWidePen = new Pen(brickBrush, 10);
/*
把 BrickBrush 字段声明为静态,就可以使用该字段的值初始化 BrickWidePen 字段了 。C 下允许使用一个实例字段初始化另一个实例字段,因为还没有定义要先初始化哪个实例字段口果把字段声明为静态字段就可以解决这个问题,因为只实例化了Form1类的实例,字段是i 茶字段还是实例字段就不重要了 。
下面是 OnPaint()重载方法∶
*/
protected override void OnPaint( PaintEventArgs e)
{
base.OnPaint(e);
Graphics dc = e.Graphics;
Point scrollOffset = this.AutoScrollPosition;


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。