public void MoveDown(IEnumerable <Rectangle> rectangles, CustomCanvas canvas) { foreach (var rect in rectangles) { var heightToMove = Canvas.GetTop(rect) + canvas.GetVerticalSpacing(); if (heightToMove >= canvas.ActualHeight) { if (rect.Name == "s0" || rect.Name == "s1") { Canvas.SetTop(rect, Canvas.GetTop(rect)); continue; } Canvas.SetTop(rect, heightToMove -= canvas.GetVerticalSpacing()); continue; } else { Canvas.SetTop(rect, heightToMove); } } }