예제 #1
0
 protected override void Shape_MouseMove(object sender, MouseEventArgs e)
 {
     if (e.LeftButton == MouseButtonState.Pressed && sender is Path path && path.Data is EllipseGeometry ellipse && GraphicalModel is PolygonGraphicalModel model)
     {
         var point = e.GetPosition(OwnerChart.ViewPanel);
         var index = ControlShapes.IndexOf(path);
         var value = GraphicalPointConverter.ConvertBack(point, null, OwnerChart, null);
         if (value is Point p)
         {
             model.Points[index] = p;
             Drawing();
         }
         ellipse.Center = point;
         e.Handled      = true;
     }
 }
예제 #2
0
        protected override void Shape_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed && sender is Path path && path.Data is EllipseGeometry ellipse && GraphicalModel is QuadrilateralGraphicalModel model)
            {
                var point = e.GetPosition(OwnerChart.ViewPanel);
                var index = ControlShapes.IndexOf(path);
                var value = GraphicalPointConverter.ConvertBack(point, null, OwnerChart, null);
                if (value is Point p)
                {
                    model.Points[index] = p;
                    switch (index)
                    {
                    case 0:
                        model.Points[1] = new Point(model.Points[1].X, p.Y);
                        model.Points[3] = new Point(p.X, model.Points[3].Y);
                        break;

                    case 1:
                        model.Points[0] = new Point(model.Points[0].X, p.Y);
                        model.Points[2] = new Point(p.X, model.Points[2].Y);
                        break;

                    case 2:
                        model.Points[1] = new Point(p.X, model.Points[1].Y);
                        model.Points[3] = new Point(model.Points[3].X, p.Y);
                        break;

                    case 3:
                        model.Points[0] = new Point(p.X, model.Points[0].Y);
                        model.Points[2] = new Point(model.Points[2].X, p.Y);
                        break;

                    default:
                        break;
                    }

                    Drawing();
                }
                ellipse.Center = point;
                e.Handled      = true;
            }
        }