private void ShapeMouseDown(object sender, MouseButtonEventArgs e)
        {
            var originalSource = e.GetType().GetProperty("OriginalSource").GetValue(e, null);
            if ((string)((FrameworkElement)originalSource).Tag == ElementRotatingService.RotationElementTag)
                return;

            Point startPosition = e.GetPosition(surfaceElement);
            moveStartX = startPosition.X;
            moveStartY = startPosition.Y;
            if (ShapeSelectedChanged != null)
            {
                ShapeSelectedChanged(this, new ShapeSelectedEventArgs()
                {
                    PreviouslySelectedShape = ShapeSelected,
                    NewSelectedShape = sender as FrameworkElement
                });
            }
            ShapeSelected = sender as FrameworkElement;
            isMoving = true;
        }