using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Animation;
namespace WpfApplication1
{
public class AnimationHelper
{
static void TranslateAnimation(DependencyObject root, FrameworkElement element, double offset, bool vertical = false)
{
NameScope.GetNameScope(root).RegisterName(element.Name, element);
var translated = element.RenderTransform as TranslateTransform;
if (!element.RenderTransform.HasAnimatedProperties)
{
var translate = new TranslateTransform();
element.RenderTransform = translate;
}
var storyboard = new Storyboard();
var animation = new DoubleAnimation();
/*
if (offset == 0)
{
// animation.From = translated.X;
}
*/
animation.To = offset;
animation.Duration = new Duration(TimeSpan.FromSeconds(1));
var ease = new BackEase();
ease.EasingMode = EasingMode.EaseInOut;
ease.Amplitude = 1;
animation.EasingFunction = ease;
PropertyPath path;
if (vertical)
{
path = new PropertyPath("(RenderTransform).(TranslateTransform.Y)");
}
else
{
path = new PropertyPath("(RenderTransform).(TranslateTransform.X)");
}
Storyboard.SetTargetProperty(animation, path);
storyboard.Children.Add(animation);
element.BeginStoryboard(storyboard);
}
}
}