2015-12-14 66 views
0

Storyboards Overview : Animate when a Property Value Changes提供了以下描述以试图解释“EventTrigger和Storyboard”之间以及“Trigger(即DataTrigger)和Storyboard”之间的关系,但对我而言听起来有点含糊不清,简短描述:故事板:EventTrigger vs DataTrigger

动画由属性触发对象施加在一个更复杂的 时尚表现得比EventTrigger动画或动画故事板使用的方法开始 。它们与其他触发器对象定义的动画“交接”,但是由EventTrigger和 组成方法触发的动画。

我的确了解Storyboard对象是只读的(freezable),但我不明白的是在基于EventTrigger或基于触发器创建Storyboard时发生的交互。术语“切换”意味着共享故事板对象吗?有人可以扩展更多关于以上引用描述的含义吗?

这个问题是基于我对Binding a Storyboard Animation inside a DataTrigger crashes the XamlParser

回答

0

当故事板与一个EventTrigger或DataTrigger它将运行,但如果有多个值,则有可能是为每个触发多个故事板创建的响应触发。因此,如果故事板动画显示相同的属性,则在新的故事板动画发生之前,必须停止或删除第一个故事板。发生这种情况时,动画的值会返回到原始值,然后动画到新值。

如果我们使用基于多个触发器的DataTrigger或EventTrigger设置对象的大小,那么您会注意到每个故事板在每个动画期间的原始起点处开始。所以你的动画从一个点到另一个点都不会平滑。这会导致令人分心的UI体验。

有了属性触发器,故事板会拾取最后一次离开的位置。基本上,在动画制作之前,动画在从一个状态转换到下一个状态时保持顺畅,而不会返回默认状态。

希望这会有所帮助。