如何阅读 Storyboard 属性 "From" 或 "To"(等)

How to read Storyboard property "From" or "To" (etc.)

我已经通过代码创建了 Storyboard,在动画期间我需要阅读一些 properties,例如 FromTo 等。如何做到这一点?我需要获取这些信息,因为在动画期间需要 add/remove/edit 效果。

Storyboard 使用 DoubleAnimation。下面的简短示例显示了我如何获得一些值,但我找不到如何获得 FromTo 值的方法。 Timeline(或Storyboard)没有这些值。

//GET EFFECT - THIS CALL GETS ADDED ANIMATION IN STORYBOARD 
Timeline TargetEffect = GetEffect(AnimationName, AnimationEffectType.Opacity);
//FROM
double From = (TargetElement as FrameworkElement).Opacity;
//DURATION
TimeSpan Duration = TargetEffect.Duration.TimeSpan;
//DELAY
TimeSpan Delay = TargetEffect.BeginTime.Value;
//REPEAT
RepeatBehavior Repeat = TargetEffect.RepeatBehavior;
//REVERSE
bool AutoReverse = TargetEffect.AutoReverse;
//FROM OR TO ????

在您的代码中,您无法访问 FromTo 的原因是您使用的是通用 Timeline 类型,它没有定义这些属性(因为只有派生的types 然后用它们动画的特定类型定义 FromTo)。所以要让它工作,你需要将它转换为 DoubleAnimation,只要你知道这是实际使用的类型:

var opacityAnimation = (DoubleAnimation)timeline;

FromTo 是正常的依赖属性(参见 here and here)。这意味着访问它们的值的方式与访问任何其他控件的 属性.

的方式完全相同

在你的代码中:

var fromValue = opacityAnimation.From;
var toValue = opacityAnimation.To;

为了更简单地访问动画,您可以在 XAML:

中为动画本身添加一个 x:Name 属性
<DoubleAnimation x:Name="MyAnimation" ... />