Пример #1
0
        private void CanvasMouseDown(object sender, MouseEventArgs e)
        {
            if (!(e.OriginalSource is Canvas))
            {
                return;
            }
            if (mouseState != MouseState.Normal)
            {
                return;
            }

            Point mousePosition = e.GetPosition(canvas);

            mouseShiftDownPosition = mousePosition;
            if (Forms.Control.ModifierKeys == Forms.Keys.Shift || Forms.Control.ModifierKeys == (Forms.Keys.Shift | Forms.Keys.Control))
            {
                mouseShiftDown = true;
                canvas.CaptureMouse();

                Canvas.SetLeft(selectionBox, mouseShiftDownPosition.X);
                Canvas.SetTop(selectionBox, mouseShiftDownPosition.Y);
                selectionBox.Width  = 0;
                selectionBox.Height = 0;

                selectionBox.Visibility = Visibility.Visible;
            }

            if (GraphMode == GraphMode.DraggingMode)
            {
                if (!(Forms.Control.ModifierKeys == Forms.Keys.Control || Forms.Control.ModifierKeys == (Forms.Keys.Shift | Forms.Keys.Control)))
                {
                    CleanSelectedVertices();
                    CleanSelectedEdges();
                }
                previousMousePosition = mousePosition;
                mouseState            = MouseState.MovingGraph;
                ViewWindow.Static     = true;
            }
            else if (GraphMode == GraphMode.InsertingMode)
            {
                if (Forms.Control.ModifierKeys == Forms.Keys.Shift || Forms.Control.ModifierKeys == (Forms.Keys.Shift | Forms.Keys.Control))
                {
                    return;
                }
                Point corePos = ViewWindow.VisualToCorePosition(mousePosition);
                clickedVertex = Core.CreateVertex(corePos.X, corePos.Y);
                SelectionProcessing();
            }
        }