Example #1
0
        private void MainCanvas_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            currentAction = Actions.rotating;

            if (SelectedImage == null)
            {
                var image = e.Source as Image;
                if (image == baseImage)
                {
                    return;
                }
                SelectedImage = image;
            }

            if (MainCanvas.CaptureMouse())
            {
                initialClickPosition.X = Canvas.GetLeft(SelectedImage) + SelectedImage.ActualWidth / 2;;
                initialClickPosition.Y = Canvas.GetTop(SelectedImage) + SelectedImage.ActualHeight / 2;;
                rotateLine.X1          = initialClickPosition.X;
                rotateLine.Y1          = initialClickPosition.Y;
                rotateLine.X2          = e.GetPosition(MainCanvas).X;
                rotateLine.Y2          = e.GetPosition(MainCanvas).Y;
                oldAngle = Math2D.AngleBetween(new Vector(1, 0), new Vector(rotateLine.X2 - rotateLine.X1, rotateLine.Y2 - rotateLine.Y1));
                Panel.SetZIndex(SelectedImage, 2);
            }
        }
Example #2
0
 private void MainCanvas_MouseMove(object sender, MouseEventArgs e)
 {
     if (currentAction == Actions.dragging)
     {
         var position = e.GetPosition(MainCanvas);
         var offset   = position - initialClickPosition;
         initialClickPosition = position;
         Canvas.SetLeft(SelectedImage, Canvas.GetLeft(SelectedImage) + offset.X);
         Canvas.SetTop(SelectedImage, Canvas.GetTop(SelectedImage) + offset.Y);
     }
     else if (currentAction == Actions.rotating)
     {
         var position = e.GetPosition(MainCanvas);
         var angle    = Math2D.AngleBetween(new Vector(1, 0), new Vector(rotateLine.X2 - rotateLine.X1, rotateLine.Y2 - rotateLine.Y1));
         if (angle != 0)
         {
             var offset = angle - oldAngle;
             oldAngle      = angle;
             rotateLine.X2 = position.X;
             rotateLine.Y2 = position.Y;
             Fixtures.FindByImage(SelectedImage).Rotate(offset);
         }
     }
 }