protected Path DrawRectangle(double x, double y, double width, double height, SolidColorBrush fillColor, Brush strokeColor) { Path p = new Path(); GeometryGroup geomGroup = new GeometryGroup(); RectangleGeometry rectGeom = CreateRectangleGeometry(x, y, width, height); geomGroup.Children.Add(rectGeom); p.Data = geomGroup; p.Fill = fillColor; p.Stroke = strokeColor; p.StrokeThickness = 1; canvas.Children.Add(p); return p; } protected RectangleGeometry CreateRectangleGeometry(double x, double y, double width, double height) { RectangleGeometry rectGeom = new RectangleGeometry(); Rect rct = new Rect(); rct.X = x; rct.Y = y; rct.Width = width; rct.Height = height; rectGeom.Rect = rct; return rectGeom; }