Files
Example/RazorEngineTest/PropertySetterAnimation.cs

42 lines
1.3 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media.Animation;
namespace RazorEngineTest
{
public class PropertySetterAnimation : AnimationTimeline
{
// 定义依赖属性用于绑定目标值
public static readonly DependencyProperty ValueProperty =
DependencyProperty.Register("Value", typeof(object), typeof(PropertySetterAnimation));
public object Value
{
get { return GetValue(ValueProperty); }
set { SetValue(ValueProperty, value); }
}
// 指定目标属性类型(可设置为任意类型)
public override Type TargetPropertyType => typeof(object);
// 创建动画实例
protected override Freezable CreateInstanceCore() => new PropertySetterAnimation();
// 核心方法:返回固定值(无插值过程)
public override object GetCurrentValue(
object defaultOriginValue,
object defaultDestinationValue,
AnimationClock animationClock)
{
return Value; // 直接返回预设值
}
// 可选:设置是否使用动画插值
public bool IsAnimationEnabled { get; set; } = false;
}
}