小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

WPF中的動(dòng)畫

 牛人的尾巴 2016-07-15

時(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í)間線的一般步驟如下:

  1. 通過(guò)CreateClock函數(shù)創(chuàng)建時(shí)鐘對(duì)象Clock
  2. 通過(guò)UIElement. ApplyAnimationClock函數(shù)啟用支持時(shí)鐘控制的動(dòng)畫
  3. 使用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ú)寫文章介紹。

  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多