首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WPF Timeline 核心機制:層次結構、持續時間計算、重複行為、填充期、速度比率

     編輯:關於.NET

Timeline 基本屬性

  • BeginTime:相對於父 Timeline 的開始偏移(預設 0)。可設 {x:Null} 由觸發器啟動。
  • Duration:持續時間(時:分:秒)。三段式必寫完整(0:0:2 非 2)。
  • AutoReverse:結束後反向播放,實際持久加倍。
  • SpeedRatio:相對父 Timeline 的播放速率(預設 1)。

階層結構:ParallelTimeline 群組與巢狀

  • 子 Timeline 的 BeginTime 相對於父 Timeline。
  • 巢狀 ParallelTimeline 可整體延遲一組動畫(範例 8-5:後兩按鈕包在內層 ParallelTimeline,BeginTime=2 秒)。
  • 結構圖示(圖 8-3)顯示時間軸水平排列,垂直線移動即整體平移。

Timeline 階層結構圖

隱性持續時間計算

  • 未指定 Duration 時,父 Timeline 依子 Timeline 結束時間自動計算(含 AutoReverse 加倍)。
  • 頂層 ParallelTimeline 若無顯性 Duration,會依最晚結束的子項決定。
  • 範例 8-6:兩子項各 0.2 秒,第二個 BeginTime=1 秒 → 父項隱性 Duration=1.2 秒。

RepeatBehavior 重複行為

  • Forever:無限重複(頂層表為應用程式存活期間;內層受父項 Duration 截斷)。
  • 3x:重複 3 次(有效持久 = 3 × 單次持久)。
  • 0:0:2:重複至累積 2 秒為止。
  • 內層 Forever 會在父項 Duration 結束時被切斷(範例 8-7、圖 8-4)。

RepeatBehavior 截斷示意

FillBehavior 填充期

  • 動畫達到有效持久結束後,進入「填充期」繼續套用最後值(預設 HoldEnd)。
  • Deactivate:填充期結束,屬性恢復動畫前值。
  • 父項 Deactivate 會導致所有子項失效,結束其填充期(範例 8-12、圖 8-5)。
  • 頂層預設 HoldEnd → 填充期無限長 → 子項最後值永久保留(範例 8-13、圖 8-6)。

父項 Deactivate 影響子項

頂層 HoldEnd 導致無限填充期

By 屬性累積與填充期的驚喜

多個動畫接力作用同一屬性且用 By 時,第二個動畫在第一個填充期啟動會疊加效果(可能是預期行為)。

SpeedRatio 速度比率

  • 相對父 Timeline 速率,非絕對時間。
  • 巢狀乘算:父 4 × 子 0.5 × 孫 0.125 = 0.25 倍速(範例 8-14、圖 8-7)。
  • 不影響 BeginTime(BeginTime 仍依父速率)。

SpeedRatio 多層疊加效果

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved