private void EllipseFadeIn(object sender, StartEventArgs e) { var moveInAnimation = new DoubleAnimation(); moveInAnimation.From = 0; moveInAnimation.To = e.StartPoint; moveInAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(MoveInTime)); moveInAnimation.EasingFunction = new ExponentialEase { EasingMode = EasingMode.EaseOut, Exponent = 7 }; var fadeInAnimation = new DoubleAnimation(); fadeInAnimation.From = 0; fadeInAnimation.To = 1; fadeInAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(FadeInTime)); var sb = new Storyboard(); _storyList.Add(sb); sb.Children.Add(moveInAnimation); sb.Children.Add(fadeInAnimation); Storyboard.SetTarget(moveInAnimation, (Ellipse)sender); Storyboard.SetTargetProperty(moveInAnimation, new PropertyPath(Canvas.LeftProperty)); Storyboard.SetTarget(fadeInAnimation, (Ellipse)sender); Storyboard.SetTargetProperty(fadeInAnimation, new PropertyPath(OpacityProperty)); sb.Completed += (sender1, args) => EllipseFadeOut(sender, e); sb.Begin(); }
private async void EllipseFadeOut(object sender, StartEventArgs e) { await Task.Delay(StartDelay); if (_stopped) return; var moveOutAnimation = new DoubleAnimation(); moveOutAnimation.From = e.StartPoint; moveOutAnimation.To = EndPointPosition; moveOutAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(MoveOutTime)); //moveOutAnimation.EasingFunction = new ExponentialEase { EasingMode = EasingMode.EaseIn, Exponent = 2 }; var sbMoveOut = new Storyboard(); _storyList.Add(sbMoveOut); sbMoveOut.Children.Add(moveOutAnimation); Storyboard.SetTarget(moveOutAnimation, (Ellipse)sender); Storyboard.SetTargetProperty(moveOutAnimation, new PropertyPath(Canvas.LeftProperty)); sbMoveOut.Completed += (sender1, args) => EllipseFadeIn(sender, e); var fadeOutAnimation = new DoubleAnimation(); fadeOutAnimation.From = 1; fadeOutAnimation.To = 0; fadeOutAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(FadeOutTime)); var sbFadeOut = new Storyboard(); _storyList.Add(sbFadeOut); sbFadeOut.Children.Add(fadeOutAnimation); Storyboard.SetTarget(fadeOutAnimation, (Ellipse)sender); Storyboard.SetTargetProperty(fadeOutAnimation, new PropertyPath(OpacityProperty)); sbMoveOut.Begin(); await Task.Delay(FadeOutDelay); if (_stopped) return; sbFadeOut.Begin(); }
private async void EllipseFadeOut(object sender, StartEventArgs e) { await Task.Delay(StartDelay); if (_stopped) { return; } var moveOutAnimation = new DoubleAnimation(); moveOutAnimation.From = e.StartPoint; moveOutAnimation.To = EndPointPosition; moveOutAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(MoveOutTime)); //moveOutAnimation.EasingFunction = new ExponentialEase { EasingMode = EasingMode.EaseIn, Exponent = 2 }; var sbMoveOut = new Storyboard(); _storyList.Add(sbMoveOut); sbMoveOut.Children.Add(moveOutAnimation); Storyboard.SetTarget(moveOutAnimation, (Ellipse)sender); Storyboard.SetTargetProperty(moveOutAnimation, new PropertyPath(Canvas.LeftProperty)); sbMoveOut.Completed += (sender1, args) => EllipseFadeIn(sender, e); var fadeOutAnimation = new DoubleAnimation(); fadeOutAnimation.From = 1; fadeOutAnimation.To = 0; fadeOutAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(FadeOutTime)); var sbFadeOut = new Storyboard(); _storyList.Add(sbFadeOut); sbFadeOut.Children.Add(fadeOutAnimation); Storyboard.SetTarget(fadeOutAnimation, (Ellipse)sender); Storyboard.SetTargetProperty(fadeOutAnimation, new PropertyPath(OpacityProperty)); sbMoveOut.Begin(); await Task.Delay(FadeOutDelay); if (_stopped) { return; } sbFadeOut.Begin(); }