/// <summary> /// Creats animation for shifting all lines according to Y axis /// </summary> /// <param name="value"></param> private void ShiftYVisibleField(double value) { pointsY = new List <Point>(); PointAnimation shiftYAnimationS = new PointAnimation(new Point(_pathFigureOfMainLine.StartPoint.X, _bottomOfChart) , _durationOfAnimations); _pathFigureOfMainLine.BeginAnimation(PathFigure.StartPointProperty, shiftYAnimationS); foreach (LineSegment lineSegment in _pathFigureOfMainLine.Segments) { PointAnimation shiftYAnimation = new PointAnimation(new Point(lineSegment.Point.X, lineSegment.Point.Y + value) , _durationOfAnimations); pointsY.Add(new Point(lineSegment.Point.X, lineSegment.Point.Y + value)); shiftYAnimation.Completed += ShiftYAnimation_Completed; lineSegment.BeginAnimation(LineSegment.PointProperty, shiftYAnimation); } }
public override void Draw(PathGeometry path, Point location, bool animate, TimeSpan animationsSpeed) { if (_path == null) { Initialize(path); } var middle = Diameter / 2.0; if (animate) { _path.BeginAnimation(PathFigure.StartPointProperty, new PointAnimation(new Point(location.X - middle, location.Y - middle), animationsSpeed)); _lineA.BeginAnimation(LineSegment.PointProperty, new PointAnimation(new Point(location.X + middle, location.Y - middle), animationsSpeed)); _lineB.BeginAnimation(LineSegment.PointProperty, new PointAnimation(new Point(location.X, location.Y + middle), animationsSpeed)); } else { _path.StartPoint = new Point(location.X - middle, location.Y - middle); _lineA.Point = new Point(location.X + middle, location.Y - middle); _lineB.Point = new Point(location.X, location.Y + middle); } }
private void f2() { Point pt1 = new Point(10, 10); Point pt1to = new Point(100, 120); Point pt2 = new Point(100, 10); Point pt2to = new Point(150, 30); Point pt3 = new Point(50, 50); Point pt3to = new Point(30, 80); PathGeometry pgeom = new PathGeometry(); PathFigure pfig1 = new PathFigure(); LineSegment ls1 = new LineSegment(pt1, true); LineSegment ls2 = new LineSegment(pt2, true); LineSegment ls3 = new LineSegment(pt3, true); PointAnimation pa1 = new PointAnimation(pt1to, new Duration(new TimeSpan(0, 0, 4))); PointAnimation pa2 = new PointAnimation(pt2to, new Duration(new TimeSpan(0, 0, 4))); PointAnimation pa3 = new PointAnimation(pt3to, new Duration(new TimeSpan(0, 0, 4))); pfig1.StartPoint = pt3; pfig1.Segments.Add(ls1); pfig1.Segments.Add(ls2); pfig1.Segments.Add(ls3); pgeom.Figures.Add(pfig1); Path myPath = new Path(); myPath.Stroke = Brushes.Black; myPath.StrokeThickness = 3; myPath.Fill = Brushes.Blue; myPath.Data = pgeom; // Add this to the Grid I named 'MyGrid' mainGrid.Children.Add(myPath); ls1.BeginAnimation(LineSegment.PointProperty, pa1); ls2.BeginAnimation(LineSegment.PointProperty, pa2); ls3.BeginAnimation(LineSegment.PointProperty, pa3); pfig1.BeginAnimation(PathFigure.StartPointProperty, pa3); }