using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Media.Animation;
|
using System.Windows;
|
|
namespace XHandler.Controls.FlipView
|
{
|
public class AnimationFactory
|
{
|
public static AnimationFactory Instance
|
{
|
get
|
{
|
return new AnimationFactory();
|
}
|
}
|
|
public Storyboard GetAnimation(DependencyObject target, double to, double from)
|
{
|
Storyboard story = new Storyboard();
|
Storyboard.SetTargetProperty(story, new PropertyPath("(TextBlock.RenderTransform).(TranslateTransform.X)"));
|
Storyboard.SetTarget(story, target);
|
|
var doubleAnimation = new DoubleAnimationUsingKeyFrames();
|
|
EasingDoubleKeyFrame fromFrame = new EasingDoubleKeyFrame(from);
|
fromFrame.EasingFunction = new ExponentialEase() { EasingMode = EasingMode.EaseOut };
|
fromFrame.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(0));
|
|
EasingDoubleKeyFrame toFrame = new EasingDoubleKeyFrame(to);
|
toFrame.EasingFunction = new ExponentialEase() { EasingMode = EasingMode.EaseOut };
|
toFrame.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(200));
|
|
doubleAnimation.KeyFrames.Add(fromFrame);
|
doubleAnimation.KeyFrames.Add(toFrame);
|
story.Children.Add(doubleAnimation);
|
|
return story;
|
}
|
}
|
}
|