public override void _presenter_MouseMove(object sender, System.Windows.Input.MouseEventArgs e) { if (pressedMouseLeftButtonDown) { if (_startPoint != null) { Point cur = e.GetPosition(_inkCanvas); StylusPoint current = new StylusPoint(cur.X, cur.Y); double angle1 = MathTool.getInstance().getAngleP2P(_center, _startPoint); double angle2 = WPFInk.tool.MathTool.getInstance().getAngleP2P(_center, current); double angle = angle2 - angle1; if (selectedStrokes.Count > 0) { foreach (MyStroke myStroke in selectedStrokes) { Command rcInk = new RotateCommand(myStroke, angle, _center); rcInk.execute(); } } if (selectImages.Count > 0) { int i = 0; foreach (MyImage image in selectImages) { //double angleImage1 = MathTool.getInstance().getAngle(_center, _startPoint); //double angleImage2 = WPFInk.tool.MathTool.getInstance().getAngle(_center, current); //double angleImage = angleImage2 - angleImage1; image.Angle = angle; Command rcImage = new ImageRotateCommand(image, preImageAngleList[i]); rcImage.execute(); i++; } } if (selectedButtons.Count > 0) { int i = 0; foreach (MyButton myButton in selectedButtons) { //double angleButton1 = MathTool.getInstance().getAngle(_center, _startPoint); //double angleButton2 = WPFInk.tool.MathTool.getInstance().getAngle(_center, current); //double angleButton = angleButton2 - angleButton1; myButton.Angle = angle; Command brc = new ButtonRotateCommand(myButton, preButtonAngleList[i]); brc.execute(); //myButton.updateArrow(_inkCanvas,_inkCollector); i++; } } _prepoint = current; } } }
public override void _presenter_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (_startPoint != null) { Point cur = e.GetPosition(_inkCanvas); StylusPoint current = new StylusPoint(cur.X, cur.Y); double angle1 = MathTool.getInstance().getAngleP2P(_center, _startPoint); double angle2 = MathTool.getInstance().getAngleP2P(_center, current); double angle = angle2 - angle1; if (selectedStrokes.Count > 0) { foreach (MyStroke myStroke in selectedStrokes) { Command rcInk = new RotateCommand(myStroke, angle, _center); _inkCollector.CommandStack.Push(rcInk); } } if (selectImages.Count > 0) { int j = 0; foreach (MyImage image in selectImages) { double angleImage1 = MathTool.getInstance().getAngleP2P(_center, _startPoint); double angleImage2 = WPFInk.tool.MathTool.getInstance().getAngleP2P(_center, current); double angleImage = angleImage2 - angleImage1; Command rcImage = new ImageRotateCommand(image, preImageAngleList[j]); _inkCollector.CommandStack.Push(rcImage); j++; } } if (selectedButtons.Count > 0) { int j = 0; foreach (MyButton myButton in selectedButtons) { double angleButton1 = MathTool.getInstance().getAngleP2P(_center, _startPoint); double angleButton2 = WPFInk.tool.MathTool.getInstance().getAngleP2P(_center, current); double angleButton = angleButton2 - angleButton1; myButton.Angle = angleButton; Command brc = new ButtonRotateCommand(myButton, preButtonAngleList[j]); _inkCollector.CommandStack.Push(brc); j++; } } } _inkCanvas.ReleaseMouseCapture(); pressedMouseLeftButtonDown = false; }