Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Draw multi-point Lines in C# WPF

Tags:

c#

wpf

Im new in C# WPF. I want to create a Line in WPF C# with a Point array.

Like:

Point[] points = 
{
  new Point(3,  5),              
  new Point(1 , 40),
  new Point(12, 30),
  new Point(20, 2 )
};

Line myLine = new Line( points );

How can I do this?

like image 333
Leonel Aguilar Avatar asked Aug 22 '14 01:08

Leonel Aguilar


1 Answers

if you want to draw it with Line, write a method, or you can use Polyline

     public MainWindow()
    {
        InitializeComponent();
        canvas.Children.Clear();
        Point[] points = new Point[4]
        {
            new Point(0,  0),
            new Point(300 , 300),
            new Point(400, 500),
            new Point(700, 100 )
        };
        DrawLine(points);
        //DrawLine2(points);
    }

    private void DrawLine(Point[] points)
    {
        int i;
        int count = points.Length;
        for (i = 0; i < count - 1; i++)
        {
            Line myline = new Line();
            myline.Stroke = Brushes.Red;
            myline.X1 = points[i].X;
            myline.Y1 = points[i].Y;
            myline.X2 = points[i + 1].X;
            myline.Y2 = points[i + 1].Y;
            canvas.Children.Add(myline);
        }
    }

    private void DrawLine2(Point[] points)
    {
        Polyline line = new Polyline();
        PointCollection collection = new PointCollection();
        foreach(Point p in points)
        {
            collection.Add(p);
        }
        line.Points = collection;
        line.Stroke = new SolidColorBrush(Colors.Black);
        line.StrokeThickness = 1;
        canvas.Children.Add(line);
    }
like image 132
Rang Avatar answered Nov 09 '22 20:11

Rang