欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WPF實(shí)現(xiàn)動(dòng)畫效果(三)之時(shí)間線(TimeLine)

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

WPF動(dòng)畫效果系列

WPF實(shí)現(xiàn)動(dòng)畫效果(一)之基本概念

WPF實(shí)現(xiàn)動(dòng)畫效果(二)之From/To/By 動(dòng)畫

WPF實(shí)現(xiàn)動(dòng)畫效果(三)之時(shí)間線(TimeLine)

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

WPF實(shí)現(xiàn)動(dòng)畫效果(五)之關(guān)鍵幀動(dòng)畫

WPF實(shí)現(xiàn)動(dòng)畫效果(六)之路徑動(dòng)畫

WPF實(shí)現(xiàn)動(dòng)畫效果(七)之演示圖板

正文

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

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

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

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

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

  • TimelineGroup:可包含其他 Timeline 對(duì)象的 Timeline 對(duì)象的抽象類。

常用屬性:

  • Duration: 動(dòng)畫播放時(shí)間長(zhǎng)度

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

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

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

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

  • BeginTime: 動(dòng)畫播放的起始時(shí)間

時(shí)間線控制:

到目前為止,我們雖然能創(chuàng)建并執(zhí)行動(dòng)畫,但僅僅能通過(guò)UIElement. BeginAnimation執(zhí)行開(kāi)始動(dòng)畫,還無(wú)法對(duì)動(dòng)畫進(jìn)行交互控制。在WPF中,還提供了一系列對(duì)時(shí)間線的控制操作,如:開(kāi)始、停止、暫停等。它們是通過(guò)Clock對(duì)象的Controller屬性來(lái)進(jìn)行的。下面就是一個(gè)簡(jiǎ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();

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

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

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

  • 使用Clock. Controller的方法控制動(dòng)畫

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

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

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

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

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

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

  • NaturalDuration    動(dòng)畫持續(xù)時(shí)間

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

  • Completed:動(dòng)畫結(jié)束時(shí)的通知

  • CurrentGlobalSpeedInvalidated 播放速率變化時(shí)的通知,

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

  • CurrentTimeInvalidated 播放時(shí)間變化時(shí)的通知

  • RemoveRequested 動(dòng)畫移除時(shí)候的通知

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

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

參考資料:

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

相關(guān)文章

  • C# SaveFileDialog與OpenFileDialog用法案例詳解

    C# SaveFileDialog與OpenFileDialog用法案例詳解

    這篇文章主要介紹了C# SaveFileDialog與OpenFileDialog用法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 在 C# 中使用 Span<T> 和 Memory<T> 編寫高性能代碼的詳細(xì)步驟

    在 C# 中使用 Span<T> 和 Memory<

    在本文中,將會(huì)介紹 C# 7.2 中引入的新類型:Span 和 Memory,文章深入研究?Span<T>?和?Memory<T>?,并演示如何在 C# 中使用它們,需要的朋友可以參考下
    2022-08-08
  • C#連接MySQL數(shù)據(jù)庫(kù)的方法步驟

    C#連接MySQL數(shù)據(jù)庫(kù)的方法步驟

    最近兩天在解決C#連接MySql數(shù)據(jù)庫(kù)的問(wèn)題,通過(guò)不同的從網(wǎng)上學(xué)習(xí),最終找到了解決的辦法,下面這篇文章主要給大家介紹了關(guān)于C#連接MySQL數(shù)據(jù)庫(kù)的方法步驟,需要的朋友可以參考下
    2023-01-01
  • C# 如何實(shí)現(xiàn)一個(gè)基于值相等性比較的字典

    C# 如何實(shí)現(xiàn)一個(gè)基于值相等性比較的字典

    這篇文章主要介紹了C# 如何實(shí)現(xiàn)一個(gè)基于值相等性比較的字典,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-02-02
  • Unity實(shí)現(xiàn)圖片生成灰白圖的方法

    Unity實(shí)現(xiàn)圖片生成灰白圖的方法

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)圖片生成灰白圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#連接MySQL操作詳細(xì)教程

    C#連接MySQL操作詳細(xì)教程

    這篇文章主要為大家詳細(xì)介紹了C#連接MySQL操作詳細(xì)教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 詳解C#如何實(shí)現(xiàn)樹形圖列表

    詳解C#如何實(shí)現(xiàn)樹形圖列表

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)樹形圖列表,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • C#流程控制詳解

    C#流程控制詳解

    這篇文章主要介紹了C#流程控制詳解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • C#實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    C#實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 深入淺析C#中的var和dynamic

    深入淺析C#中的var和dynamic

    這篇文章給大家介紹了C#中的var和dynamic的相關(guān)知識(shí),var和dynamic的本質(zhì)區(qū)別是類型判斷的時(shí)間不同,前者是編譯時(shí),后者是運(yùn)行時(shí)。具體內(nèi)容詳情大家通過(guò)本文學(xué)習(xí)下吧
    2018-05-05

最新評(píng)論