private void SwapShowStoryBegin(FrameworkElement sourceUI, FrameworkElement targetUI) { BounceEase bounceease = new BounceEase(); bounceease.Bounces = 1; bounceease.Bounciness = 10; bounceease.EasingMode = EasingMode.EaseOut; bounceease.Freeze(); Storyboard shows = new Storyboard(); DoubleAnimation scalex1 = new DoubleAnimation() { From = 0, To = 1, Duration = TimeSpan.FromMilliseconds(500) }; Storyboard.SetTarget(scalex1, sourceUI); Storyboard.SetTargetProperty(scalex1, new PropertyPath("(FrameworkElement.RenderTransform).(ScaleTransform.ScaleX)")); scalex1.EasingFunction = bounceease; DoubleAnimation scalex2 = new DoubleAnimation() { From = 0, To = 1, Duration = TimeSpan.FromMilliseconds(500) }; Storyboard.SetTarget(scalex2, targetUI); Storyboard.SetTargetProperty(scalex2, new PropertyPath("(FrameworkElement.RenderTransform).(ScaleTransform.ScaleX)")); scalex2.EasingFunction = bounceease; shows.Children.Add(scalex1); shows.Children.Add(scalex2); shows.Completed += shows_Completed; shows.Begin(); }