public virtual void Render(Graphics g) { CanvasPaintArgs e = new CanvasPaintArgs(); e.g = g; #region RenderShapes foreach (Shape shape in shapes) { e.BorderPen = Pens.Black; e.FillBrush = Brushes.White; IDesignable designable = shape as IDesignable; if (designable != null) { e.FillBrush = new SolidBrush(designable.FillColor); e.BorderPen = new Pen(designable.BorderColor, designable.BorderSize); } shape.Render(e); } #endregion #region RenderSelection foreach (Shape shape in shapes) { ISelectable selectable = shape as ISelectable; if (selectable != null && selectable.IsSelected) { selectable.RenderSelection(e); IResizable resizable = shape as IResizable; if (resizable != null) { resizable.RenderResize(e); } } } #endregion }