private void DrawRectangle(GraphicalObject obj, Canvas paintCanvas) { Polygon rect = createRectangle(obj); rect.Stroke = Brushes.Black; paintCanvas.Children.Add(rect); }
private void DrawEllipse(GraphicalObject obj, Canvas paintCanvas) { Ellipse ellipse = new Ellipse(); ellipse.Width = obj.dx; ellipse.Height = obj.dy; ellipse.Stroke = Brushes.Black; paintCanvas.Children.Add(ellipse); Canvas.SetTop(ellipse, obj.X); Canvas.SetLeft(ellipse, obj.Y); }
private void DrawLine(GraphicalObject obj, Canvas paintCanvas) { Line line = new Line(); line.X1 = obj.X; line.Y1 = obj.Y; line.X2 = obj.X + obj.dx; line.Y2 = obj.Y + obj.dy; line.Stroke = Brushes.Black; paintCanvas.Children.Add(line); }
private void LoadData(string fileName) { using (StreamReader reader = new StreamReader(fileName)) { string line; while ((line = reader.ReadLine()) != null) { GraphicalObject obj = GraphicalObject.ParseObject(line); objects.Add(obj); } } }
private void EllipseMenuItem_Click(object sender, RoutedEventArgs e) { GraphicalObject obj = new GraphicalObject(); obj.type = ObjectType.Ellipse; AddObjectDialog dialog = new AddObjectDialog(); dialog.GraphicalObject = obj; if (dialog.ShowDialog() == true) { objects.Add(dialog.GraphicalObject); Refresh(PaintCanvas); } }
public static GraphicalObject ParseObject(string line) { GraphicalObject obj = new GraphicalObject(); string[] parts = line.Split(';'); if (parts.Length != 5) { throw new FormatException("Invalid line format"); } obj.type = (ObjectType)int.Parse(parts[0]); obj.X = int.Parse(parts[1]); obj.Y = int.Parse(parts[2]); obj.dx = int.Parse(parts[3]); obj.dy = int.Parse(parts[4]); return(obj); }
private void Draw(GraphicalObject obj, Canvas paintCanvas) { switch (obj.type) { case ObjectType.Line: DrawLine(obj, paintCanvas); break; case ObjectType.Rectangle: DrawRectangle(obj, paintCanvas); break; case ObjectType.Ellipse: DrawEllipse(obj, paintCanvas); break; } }
private Polygon createRectangle(GraphicalObject obj) { Polygon rect = new Polygon(); Point p1 = new Point(), p2 = new Point(), p3 = new Point(), p4 = new Point(); p1.X = obj.X; p1.Y = obj.Y; p2.X = obj.X + obj.dx; p2.Y = obj.Y; p3.X = p2.X; p3.Y = obj.Y + obj.dy; p4.X = obj.X; p4.Y = obj.Y + obj.dy; rect.Points.Add(p1); rect.Points.Add(p2); rect.Points.Add(p3); rect.Points.Add(p4); rect.Points.Add(p1); rect.Stroke = Brushes.Black; return(rect); }