public CartesianChart( ICartesianChartView <TDrawingContext> view, Action <LiveChartsSettings> defaultPlatformConfig, MotionCanvas <TDrawingContext> canvas) : base(canvas, defaultPlatformConfig) { chartView = view; view.PointStates.Chart = this; foreach (var item in view.PointStates.GetStates()) { if (item.Fill != null) { item.Fill.ZIndex += 1000000; canvas.AddDrawableTask(item.Fill); } if (item.Stroke != null) { item.Stroke.ZIndex += 1000000; canvas.AddDrawableTask(item.Stroke); } } }
public static void Generate(MotionCanvas <SkiaSharpDrawingContext> canvas) { var r = new Random(); var p = new SolidColorPaint(SKColors.Blue, 3) { IsFill = true }; canvas.AddDrawableTask(p); for (var i = 0; i < 1000; i++) { var circle = new CircleGeometry { X = r.Next(15, 285), Y = r.Next(15, 285), Width = 5, Height = 5 }; _ = circle .TransitionateProperties( nameof(circle.X), nameof(circle.Y)) .WithAnimation(animation => animation .WithDuration(TimeSpan.FromSeconds(1)) .WithEasingFunction(EasingFunctions.ElasticOut)) .CompleteCurrentTransitions(); //circle.SetPropertiesTransitions( // new Animation(EasingFunctions.ElasticOut, TimeSpan.FromSeconds(1)), // nameof(circle.X), nameof(circle.Y)); //circle.CompleteAllTransitions(); p.AddGeometryToPaintTask(canvas, circle); circle.X = r.Next(15, 285); circle.Y = r.Next(15, 285); } canvas.Invalidate(); }