怎样在百度上建立网站,查询网站旗下域名,百度联盟推广,国外推广渠道有哪些方式版权声明#xff1a;本文为博主原创文章#xff0c;转载请在显著位置标明本文出处以及作者网名#xff0c;未经作者允许不得用于商业目的。
17.2.5 线条样式
C#为画笔绘制线段提供了多种样式#xff1a;一是线帽#xff08;包括起点和终点处#xff09;样式#xff1b…版权声明本文为博主原创文章转载请在显著位置标明本文出处以及作者网名未经作者允许不得用于商业目的。
17.2.5 线条样式
C#为画笔绘制线段提供了多种样式一是线帽包括起点和终点处样式二是线条样式。
17.2.5.1 线帽样式
Pen类的StartCap属性可以设置线段起点使用的线帽样式EndCap属性可以设置线段终点使用的线帽样式。这两个属性的值是LineCap枚举它包括以下成员
AnchorMask用于检查线帽是否为锚头帽的掩码。ArrowAnchor箭头状锚头帽。Custom自定义线帽。DiamondAnchor菱形锚头帽。Flat平线帽。NoAnchor没有锚。Round圆线帽。RoundAnchor圆锚头帽。Square方线帽。SquareAnchor方锚头帽。Triangle三角线帽。
【例 17.12】【项目code17-012】绘制带线帽的线段。 private void button1_Click(object sender, EventArgs e) { Graphics g this.CreateGraphics(); Pen myPen new Pen(Color.Red, 8); //几种主要的线帽 LineCap[] pCap { LineCap.AnchorMask, LineCap.ArrowAnchor, LineCap.DiamondAnchor, LineCap.Flat, LineCap.Round, LineCap.Square, LineCap.SquareAnchor, LineCap.Triangle}; for(int i 0;i pCap.Length;i) { //设置线段开始端线帽样式 myPen.StartCap pCap[i]; //设置线段结束端线帽样式 myPen.EndCap pCap[pCap.Length - 1 - i]; g.DrawLine(myPen, new Point(100, i * 30 20), new Point(300, i * 30 20)); } g.Dispose(); }
运行结果如下图所示 图17-13 常见的线帽样式
17.2.5.2 自定义线帽
使用自定义线帽需要使用到GraphicsPath类和CustomLineCap类。
1、GraphicsPath类表示一系列相互连接的线段和曲线。路径可由任意数目的图形子路径组成应用程序可以使用路径来绘制形状的轮廓、填充形状内部和创建剪辑区域。通常情况下可以使用不带参数的构造函数初始化一个GraphicsPath然后使用它提供的方法来添加图形到路径。
GraphicsPath常用方法
AddArc添加椭圆弧。AddBezier添加贝塞尔曲线。AddClosedCurve向此路径添加一个闭合曲线。 由于曲线经过数组中的每个点因此使用基数样条曲线。AddCurve添加样条曲线。AddEllipse添加椭圆。AddLine 添加线段。AddPie添加扇形轮廓。AddPolygon 添加多边形。AddString添加文本字符串。AddPath将指定的 GraphicsPath 追加到该路径。
2、CustomLineCap类封装自定义的用户定义的线帽。
CustomLineCap常用的构造函数
Public Sub New ( fillPath As GraphicsPath, strokePath As GraphicsPath)
参数说明
fillPath自定义线帽填充内容的GraphicsPath对象。strokePath自定义线帽轮廓的GraphicsPath对象。
上述两个参数不能同时使用必须设置其中一个参数为nothing。如果均未向两个参数传递空值则第一个参数将被忽略。
3、最后设置Pen的CustomStartCap或者CustomEndCap属性为定义的CustomLineCap。
注意使用此方法时线段起点或终点与GraphicsPath的0,0位置重合而且坐标系和之前讲到的C#坐标系不同见下图 图17-14 自定义线帽时的GraphicsPath坐标系
【例 17.13】【项目code17-013】自定义三角形线帽。 private void button1_Click(object sender, EventArgs e) { Graphics g this.CreateGraphics(); Pen myPen new Pen(Color.Red, 4); //定义包含一个多边形的路径 Point[] points { new Point(0, 0), new Point(3, 6), new Point(-3, 6) }; GraphicsPath gpath new GraphicsPath(); gpath.AddPolygon(points); //自定义线帽样式 CustomLineCap pCap new CustomLineCap(null, gpath); //设置自定义起点线帽和自定义终点线帽 myPen.CustomStartCap pCap; myPen.CustomEndCap pCap; g.DrawLine(myPen, new Point(50, 50), new Point(250, 50)); }
运行结果如下图所示 图17-15自定义线帽
17.2.5.3 点划线样式
Pen类的DashStyle属性可以设置用 Pen 对象绘制点划线点划线是由点与短线段连续组成的直线。DashStyle属性的值是DashStyle枚举它包括以下成员
Custom指定用户定义的自定义点划线样式。Dash指定由短线段构成的直线。DashDot指定由重复的短线段和点构成的直线。DashDotDot指定由重复的短线段、点、点构成的直线。Dot指定由点构成的直线。Solid实线。
【例 17.14】【项目code17-014】使用线条样式。 private void button1_Click(object sender, EventArgs e) { Graphics g this.CreateGraphics(); Pen p new Pen(Color.Red, 4); //常见的几种点划线样式 DashStyle[] pDash { DashStyle.Dot, DashStyle.DashDot, DashStyle.Dash, DashStyle.DashDotDot }; for(int i 0;i pDash.Length;i) { //设置点划线样式 p.DashStyle pDash[i]; g.DrawLine(p, new Point(20, i * 30 20), new Point(200, i * 30 20)); } } private void button2_Click(object sender, EventArgs e) { Graphics g this.CreateGraphics(); Pen p new Pen(Color.Red, 2); //设置使用短横线 p.DashStyle DashStyle.Dash; g.DrawRectangle(p, new Rectangle(20, 140, 180, 60)); }
运行结果如下图所示 图17-16 使用线条样式画线和画矩形
学习更多vb.net知识请参看vb.net 教程 目录
学习更多C#知识请参看C#教程 目录