Pen.CompoundArray是一个数组,该数组包含四个元素,第一个元素是指Pen是最上侧开始的位置(相对Pen的宽度来讲),第二个元素是从上侧延伸到的位置,第三个元素是从上往下退缩的宽度,最后一个元素是从下往上退缩的宽度。
测试代码如下:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Drawing.Drawing2D;
- namespace _003点_直线和曲线
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- protected override void OnPaint(PaintEventArgs e)
- {
- //base.OnPaint(e);
- Graphics G = e.Graphics; // 构造Graphics对象
- Pen p1 = new Pen(Color.Blue,10); // 实例化Pen对象
- G.DrawLine(p1,20,20,330,20); // 画直线
- Pen p2 = new Pen(Color.Blue,5); // 实例化Pen对象
- float[] Pts = { 3,1,2,5}; // 定义一个浮点型数组
- p2.DashStyle = DashStyle.Dash; // 定义Pen p2的DashStyle类型为DashStye
- p2.DashPattern = Pts;
- p2.DashCap = DashCap.Triangle;
- p2.StartCap = LineCap.Triangle;
- p2.EndCap = LineCap.ArrowAnchor;
- G.DrawLine(p2, 20, 50, 330, 50);
- Pen p3 = new Pen(Color.Blue,100);
- Single[] lines = { 0.0f, 0.1f, 0.9f, 1.0f };
- p3 = new Pen(Color.Blue, 100);
- p3.CompoundArray = lines;
- e.Graphics.DrawLine(p3,20,180,330,180);
- }
- }
- }
将数组lines改为:Single[] lines = { 0.0f, 0.3f, 0.9f, 1.0f };
可以明显看到上侧的宽度向中间延伸了。
转载于:https://blog.51cto.com/lixianhui/786915