最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

WPF實現(xiàn)動畫效果(三)之時間線(TimeLine)

 更新時間:2022年06月23日 11:17:24   作者:天方  
這篇文章介紹了WPF實現(xiàn)動畫效果之時間線(TimeLine),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

WPF動畫效果系列

WPF實現(xiàn)動畫效果(一)之基本概念

WPF實現(xiàn)動畫效果(二)之From/To/By 動畫

WPF實現(xiàn)動畫效果(三)之時間線(TimeLine)

WPF實現(xiàn)動畫效果(四)之緩動函數(shù)

WPF實現(xiàn)動畫效果(五)之關(guān)鍵幀動畫

WPF實現(xiàn)動畫效果(六)之路徑動畫

WPF實現(xiàn)動畫效果(七)之演示圖板

正文

時間線(TimeLine)表示時間段。 它提供的屬性可以讓控制該時間段的長度、開始時間、重復(fù)次數(shù)、該時間段內(nèi)時間進(jìn)度的快慢等等。在WPF中內(nèi)置了如下幾種TimeLine:

  • AnimationTimeline :前面已經(jīng)介紹過,主要用于屬性的過渡,這種是最常見的動畫。

  • MediaTimeline:用于控制媒體文件播放的時間線。

  • ParallelTimeline:ParallelTimeline 是一種可對其他時間線進(jìn)行分組的時間線,可用于實現(xiàn)較復(fù)雜的動畫。

  • Storyboard :一種特殊的 ParallelTimeline,可為其包含的時間線提供對象和屬性目標(biāo)信息。在XAML中經(jīng)常使用到它,在后面再專項介紹。

  • TimelineGroup:可包含其他 Timeline 對象的 Timeline 對象的抽象類。

常用屬性:

  • Duration: 動畫播放時間長度

  • RepeatBehavior: 重復(fù)行為(重復(fù)次數(shù))

  • FillBehavior: 動畫結(jié)束后的行為(保持動畫的結(jié)束狀態(tài)或恢復(fù)到初始狀態(tài))

  • AutoReverse: 按相反的順序重復(fù)播放動畫

  • SpeedRatio: 動畫播放速率(用于加速或減速播放)

  • BeginTime: 動畫播放的起始時間

時間線控制:

到目前為止,我們雖然能創(chuàng)建并執(zhí)行動畫,但僅僅能通過UIElement. BeginAnimation執(zhí)行開始動畫,還無法對動畫進(jìn)行交互控制。在WPF中,還提供了一系列對時間線的控制操作,如:開始、停止、暫停等。它們是通過Clock對象的Controller屬性來進(jìn)行的。下面就是一個簡單的示例:

    var widthAnimation = new DoubleAnimation()
    {
        From = 0,
        To = 320,
        Duration = TimeSpan.FromSeconds(5),
    };

    var clock = widthAnimation.CreateClock();
    button.ApplyAnimationClock(WidthProperty, clock);

    await Task.Delay(3000);
    clock.Controller.Pause();

從這個代碼中可以看出,控制時間線的一般步驟如下:

  • 通過CreateClock函數(shù)創(chuàng)建時鐘對象Clock

  • 通過UIElement. ApplyAnimationClock函數(shù)啟用支持時鐘控制的動畫

  • 使用Clock. Controller的方法控制動畫

更加詳盡的例子可以參看MSDN文檔:以交互方式控制時鐘

除了在Controller中提供了交互方法以為,Clock對象還提供了一系列屬性和事件方便我們的獲取狀態(tài),常見的有:

  • CurrentProgress    當(dāng)前進(jìn)度

  • CurrentState    當(dāng)前狀態(tài)

  • CurrentTime    當(dāng)前播放時間

  • IsPaused    是否處于暫停狀態(tài)

  • NaturalDuration    動畫持續(xù)時間

也提供了一系列事件來主動通知狀態(tài)的變更,常用的事件為:

  • Completed:動畫結(jié)束時的通知

  • CurrentGlobalSpeedInvalidated 播放速率變化時的通知,

  • CurrentStateInvalidated 狀態(tài)變化時的通知

  • CurrentTimeInvalidated 播放時間變化時的通知

  • RemoveRequested 動畫移除時候的通知

這幾個事件在TimeLine對象中也是有的,這樣,在不使用Clock對象的時候也可以或者這些狀態(tài)的變化。 如果想更加收入的理解計時系統(tǒng)的工作方式,可以看看動畫和計時系統(tǒng)概述一文。

另外,有的特殊的TimeLine對象,如Storyboard本身就封裝了動畫的控制相關(guān)內(nèi)容,可以直接對動畫進(jìn)行控制。關(guān)于Storyboard需要介紹的內(nèi)容比較多,后面再單獨寫文章介紹。

參考資料:

到此這篇關(guān)于WPF實現(xiàn)動畫效果之時間線(TimeLine)的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

大竹县| 罗源县| 琼结县| 沐川县| 台南市| 泊头市| 图们市| 道孚县| 三台县| 岚皋县| 双江| 海淀区| 营口市| 山西省| 精河县| 渭南市| 东乡| 竹溪县| 泰安市| 金阳县| 淄博市| 德安县| 隆安县| 延安市| 丹棱县| 济源市| 台安县| 兴海县| 监利县| 合川市| 邹城市| 汪清县| 余干县| 侯马市| 西充县| 灵武市| 乌鲁木齐市| 塔河县| 吴旗县| 新竹市| 麦盖提县|