none
Graphics.DrawLines如何绘制长度不一样的文件呢? RRS feed

  • 问题

  • private void Form1_Paint(object sender, PaintEventArgs e)
            {
                Graphics g = e.Graphics;
                Point[] ptsArray =
                {
                    new Point(20,20),
                    new Point(20,200),
                    new Point(200,200),
                    new Point(20,20)
                };
                Pen greenPen = new Pen(Color.Green, 3);
                g.DrawLines(greenPen,ptsArray);
            }

    这种画法数组是固定的。如果打开的文件中的坐标个数不一样,怎么办呢?请指点。谢谢。

    杲大盛 ...........勤!能!补!拙!........ 勤!勤!勤!.............

    2014年2月21日 1:32

答案

  • 坐标个数不固定可以先添加到List<Point>里面再把List<Point>转化为数组即可。

          private void Form1_Paint(object sender, PaintEventArgs e)
            {
                Graphics g = e.Graphics;
                List<Point> pList = new List<Point>();
                pList.Add(new Point(20,20));
                ... //添加不固数目的Point
                Pen greenPen = new Pen(Color.Green, 3);
                g.DrawLines(greenPen,pList.ToArray());
            }

    2014年2月24日 6:02

全部回复

  • 你好:

    不太清楚你的意思,你要打开什么文件呢?文件中是怎么有存储坐标的呢?

    如果你是要画一些形状的话建议你参考Graphics Class里面的一些重载方法。另外一些GDI+的编程教程也建议你看一下:

    C#GDI+编程基础(一)

    c# GDI+简单绘图(一)


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2014年2月24日 1:57
    版主
  • 坐标个数不固定可以先添加到List<Point>里面再把List<Point>转化为数组即可。

          private void Form1_Paint(object sender, PaintEventArgs e)
            {
                Graphics g = e.Graphics;
                List<Point> pList = new List<Point>();
                pList.Add(new Point(20,20));
                ... //添加不固数目的Point
                Pen greenPen = new Pen(Color.Green, 3);
                g.DrawLines(greenPen,pList.ToArray());
            }

    2014年2月24日 6:02