コード例 #1
0
        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;
                }
            }
        }
コード例 #2
0
        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;
        }