【问题标题】:Storyboard: EventTrigger vs DataTrigger故事板:EventTrigger 与 DataTrigger
【发布时间】:2016-03-19 20:13:12
【问题描述】:

Storyboards Overview : Animate when a Property Value Changes 提供了以下描述,试图解释“EventTrigger 和 Storyboard”之间以及“Trigger(即 DataTrigger)和 Storyboard”之间的关系,但对我来说听起来有点模棱两可,而且是一个简短的描述:

属性触发对象应用的动画表现得更 比 EventTrigger 动画或动画开始复杂的时尚 使用情节提要方法。他们用定义的动画“切换” 其他 Trigger 对象,但与 EventTrigger 和 方法触发的动画。

我知道 Storyboard 对象是只读的(可冻结),但我不明白的是在创建基于 EventTrigger 或基于触发器的 Storyboard 时发生的交互。术语“移交”是否意味着故事板对象的共享?有人可以进一步扩展上述引用描述的含义吗?

这个问题是根据我对Binding a Storyboard Animation inside a DataTrigger crashes the XamlParser的回复触发的

【问题讨论】:

    标签: c# wpf storyboard datatrigger


    【解决方案1】:

    使用 EventTrigger 或 DataTrigger 创建 Storyboard 时,它将运行,但如果有多个值,则每个触发器可能有多个 Storyboard。因此,如果故事板正在为相同的属性设置动画,则必须停止或删除第一个故事板,然后才能发生新的故事板动画。发生这种情况时,动画值会返回到原始值,然后动画到新值。

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

    使用属性触发器,情节提要将从上次停止的地方开始。基本上,动画在从一个状态到下一个状态的过渡过程中保持平滑,而不会在动画之前返回默认值。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-01-20
      • 2018-02-09
      • 2010-12-13
      • 2011-07-11
      • 2021-08-07
      • 2016-01-10
      • 2015-02-25
      • 2015-05-02
      • 1970-01-01
      相关资源
      最近更新 更多