Files
harmonia/Harmonia.UI/Animations/Animations.cs

58 lines
1.8 KiB
C#

using Avalonia;
using Avalonia.Animation;
using Avalonia.Media;
using Avalonia.Styling;
using System;
namespace Harmonia.UI.Animations
{
public static class Animations
{
public static Animation SlideIn(Point start, Point end, long duration = 200)
{
return new()
{
Duration = TimeSpan.FromMilliseconds(duration),
Children =
{
new KeyFrame
{
Cue = new Cue(0f),
Setters =
{
new Setter(Visual.OpacityProperty, 0.0),
new Setter(TranslateTransform.XProperty, start.X),
new Setter(TranslateTransform.YProperty, start.Y)
}
},
new KeyFrame
{
Cue = new Cue(1f),
Setters =
{
new Setter(Visual.OpacityProperty, 1.0),
new Setter(TranslateTransform.XProperty, end.X),
new Setter(TranslateTransform.YProperty, end.Y)
}
}
}
};
}
public static Animation SlideFromRight(double offSet, long duration = 200)
{
Point start = new(-offSet, 0);
Point end = new(0, 0);
return SlideIn(start, end, duration);
}
public static Animation SlideToRight(double offSet, long duration = 200)
{
Point start = new(0, 0);
Point end = new(offSet, 0);
return SlideIn(start, end, duration);
}
}
}