ObjectAnimationUsingKeyFrames vs Setters?

时间:2018-03-16 04:05:07

标签: c# xaml uwp

通过提供的默认控件样式,我看到了两种截然不同的语法,用于执行非常类似的操作。下面是其中一个示例的截图!

XAML code

使用ObjectAnimationUsingKeyFrames语法,我们实际上是为元素设置属性的值,这可以通过Setter语法以及更简洁的方式轻松实现。那么为什么在所有控件的默认样式中,使用这样的语法?这是遗产吗?

我可以想到ObjectAnimationUsingKeyFrames语法优于Setter语法的一个好处,它允许使用KeyTime属性在某个特定时间更改属性,但大多数时候都不会使用它。

1 个答案:

答案 0 :(得分:1)

很大程度上它是一件遗产。在Silverlight和WPF XAML中,VisualStates只能使用Storyboard来设置属性,而当时的Blend工具也更喜欢使用VisualStateSetters创建Storyboard。对于VisualStates,如果你不需要一个动画状态 - 这是大部分时间 - 没有真正的理由不使用Setter - 它通常更简洁,更容易阅读。框架中新近创建的许多控件或新添加的状态都将使用Setter而不是故事板。

(大多数情况下,当你需要动画状态时,你真正想要的是使用VisualStateTransitions的动画状态转换,而不是动画状态本身)