/// <summary> /// Constructor for the Visual class. /// </summary> /// <param name="mainWindow">Application's main window</param> public Visual(MainWindow mainWindow) { this.mainWindow = mainWindow; canvas = mainWindow.MainCanvas; VertexSize = 25.0; GraphMode = GraphMode.DraggingMode; ViewWindow = new ViewWindow(this); ViewWindow.Canvas = canvas; ViewWindow.MarginLength = 4.0 * VertexSize; addedEdge = new Line { Stroke = edgeBrush, StrokeThickness = VertexSize / verticeToEdgeRatio, Visibility = Visibility.Hidden, }; canvas.Children.Add(addedEdge); Canvas.SetZIndex(addedEdge, 1); selectionBox = new Rectangle { Visibility = Visibility.Collapsed, Stroke = new SolidColorBrush(selectionBoxColor), StrokeThickness = 1, }; canvas.Children.Add(selectionBox); canvas.MouseDown += CanvasMouseDown; canvas.MouseUp += CanvasMouseUp; canvas.MouseUp += MouseUp; canvas.MouseMove += MouseMove; canvas.MouseLeave += MouseUp; canvas.MouseWheel += MouseZoom; }