运行环境
MS VS 2019
.NET Framework 4.5
C# WPF应用
展示效果
对WPF只是略知一二,如果有用的话,希望为需要的人提供有限的帮助
可以实现不同方向的淡入淡出、自定义的持续时间和距离
只要像提示的这样调用函数就可以调用这个动画了
使用方法
新建类
文件里面写上下面的代码
using System;
using System.Windows.Controls;
using System.Windows.Media.Animation;
using System.Windows.Media;
using System.Windows;
namespace WpfApp1
{
class Class1
{
/// <summary>
/// 淡入动画 (控件名, 0:上方;1:右方;2:下方;3:左方, 淡入的距离,持续时间)
/// </summary>
/// <param name="element">控件名</param>
/// <param name="direction">0:上方;1:右方;2:下方;3:左方</param>
/// <param name="distance">淡入的距离</param>
/// <param name="duration">持续时间</param>
public void Appear(FrameworkElement element, int direction = 0, int distance = 20, double duration = .3)
{
//将所选控件的Visibility属性改为Visible,这里要首先执行否则动画看不到
ObjectAnimationUsingKeyFrames VisbilityAnimation = new ObjectAnimationUsingKeyFrames();
DiscreteObjectKeyFrame kf = new DiscreteObjectKeyFrame(Visibility.Visible, new TimeSpan(0, 0, 0));
VisbilityAnimation.KeyFrames.Add(kf);
element.BeginAnimation(Border.VisibilityProperty, VisbilityAnimation);
//创建新的缩放动画
TranslateTransform TT = new TranslateTransform();
element.RenderTransform = TT;
//创建缩放动画函数,可以自己修改
EasingFunctionBase easeFunction = new PowerEase() {
EasingMode = EasingMode.EaseInOut, Power = 2 };
//判断动画方向
if (direction == 0)
{
DoubleAnimation Animation = new DoubleAnimation(-distance, 0, new Duration(TimeSpan.FromSeconds(duration)));
Animation.EasingFunction = easeFunction;