private void CanvasMouseDown(Object element)
        {
            mouseDownPoint = Mouse.GetPosition((IInputElement)element);
            mouseUpPoint   = mouseDownPoint;
            switch (SelectedTool)
            {
            case ToolsEnum.CreateRect:
                currentShape = CreateRect();
                break;

            case ToolsEnum.CreateLine:
                currentShape = CreateLine();
                break;

            case ToolsEnum.CreateCircle:
                currentShape = CreateCircle();
                break;

            case ToolsEnum.CreateEllipse:
                currentShape = CreateEllipse();
                break;

            case ToolsEnum.CreateExam:
                currentShape = CreateExam();
                break;
            }
            Debug.WriteLine("Mouse down pos: " + mouseDownPoint.ToString());
        }
        private void CanvasMouseUp(Object element)
        {
            currentShape = null;
            mouseUpPoint = Mouse.GetPosition((IInputElement)element);
            Debug.WriteLine("Mouse up pos: " + mouseUpPoint.ToString());
            switch (SelectedTool)
            {
            case ToolsEnum.Select:
                SetSelectedElement(element);
                break;

            case ToolsEnum.CopyPaste:
                Paste();
                break;
            }
        }
        private void SelectSingleElement(ListBox listBox)
        {
            multipleSelectedElements = false;

            selectedElement = listBox.SelectedItem as VectorShapeModel;
            if (selectedElement == null)
            {
                Debug.WriteLine("selected element is null");
                return;
            }
            Debug.WriteLine("Selected element color: " + selectedElement.Color.R.ToString() + "/" + selectedElement.Color.G.ToString() + "/" + selectedElement.Color.B.ToString());

            OnPropetyChangedSelectedElement();

            transformVisibility = Visibility.Visible;
            OnPropertyChanged("TransformVisibility");

            color = selectedElement.Color;
            OnPropertyChanged("Color");
        }
        private void SelectMultipleElements(ListBox listBox)
        {
            Debug.WriteLine(listBox.SelectedItems.Count);
            selectedElements = new List <VectorShapeModel>();
            foreach (VectorShapeModel shape in listBox.SelectedItems)
            {
                selectedElements.Add(shape);
            }
            if (selectedElements == null || selectedElements.Count == 0)
            {
                Debug.WriteLine("selected elementS is null");
                return;
            }
            Debug.WriteLine("Selected elements count: " + selectedElements.Count);

            System.Drawing.Point avg = UtilityStuff.GetAveragePosOfShapes(selectedElements);
            selectedElement = new VectorShapeModel(avg.X, avg.Y, 0, Color.FromRgb(255, 0, 0), layers[0]);

            multipleSelectedElements = true;
            OnPropetyChangedSelectedElement();

            transformVisibility = Visibility.Visible;
            OnPropertyChanged("TransformVisibility");
        }