2015-12-14 102 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體驗。

有了屬性觸發器,故事板會拾取最後一次離開的位置。基本上,在動畫製作之前,動畫在從一個狀態轉換到下一個狀態時保持順暢,而不會返回默認狀態。

希望這會有所幫助。