private void Rerender(Canvas canvas) { Derender(canvas); centerX = canvas.CenterX(); centerY = canvas.CenterY(); points.Clear(); walls.Clear(); if (dataItem.Point.Count < 1) { return; } var pointQueue = new Queue<Models.Point>(dataItem.Point); var lastPoint = pointQueue.Dequeue(); points.Add(CreatePoint(lastPoint)); while (pointQueue.Count > 0) { var newPoint = pointQueue.Dequeue(); walls.Add(CreateWall(lastPoint, newPoint)); points.Add(CreatePoint(newPoint)); lastPoint = newPoint; } points.First().Fill = Brushes.DarkOrange; points.Last().Fill = Brushes.DarkRed; Render(canvas); }