42 lines
1.3 KiB
C#
42 lines
1.3 KiB
C#
|
|
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;
|
|||
|
|
}
|
|||
|
|
}
|