国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

第15章 動畫基礎(chǔ)(1)——概述、通過代碼創(chuàng)建動畫和動畫的生命周期

2019-11-10 22:14:49
字體:
供稿:網(wǎng)友

一、動畫概述

①動畫是WPF模型的核心部分。這意味著為了讓動畫動起來,不需要使用計(jì)時器以及事件處理代碼,只需要使用聲明的方式即可創(chuàng)建動畫。

②WPF動畫是基于屬性的動畫。本質(zhì)上,WPF動畫只不過是在一段時間間隔內(nèi)修改下依賴項(xiàng)屬性而已。

③創(chuàng)建正確動畫的秘密在于決定需要修改什么屬性。

④為了實(shí)現(xiàn)屬性的動態(tài)化,需要有支持相應(yīng)數(shù)據(jù)類型的動畫類。如Button.Width屬性使用雙精度數(shù)據(jù)類型,就必須使用DoubleAnimation類實(shí)現(xiàn)動畫。

⑤動畫分為:線性插值動畫、關(guān)鍵幀動畫和路徑動畫

線性插值動畫:指在開始值和結(jié)束值之間以逐步增加的方式進(jìn)行的動畫。

命名方式:類型名+Animation。如:DoubleAnimation

關(guān)鍵幀動畫:指一個值突然改變到另一個值的動畫。

命名方式:類型名+AnimationUsingKeyFrames。如:ColorAnimationUsingKeyFrames

從適用范圍上將關(guān)鍵幀動畫大于線性插值動畫。可以這樣講所有支持關(guān)鍵幀動畫的數(shù)據(jù)類型,都支持線性插值動畫,但反過來不成立。

路徑動畫:值沿著指定路徑移動的動畫,它比前兩種動畫更加專業(yè)。

命名方式:類型名+AnimationUsingPath。如:PointAnimationUsingPath

⑥所有動畫類都定義在System.Windows.Media.Animation命名空間下,共計(jì)42個。詳情見書P352-P353。

二、通過代碼創(chuàng)建動畫

①每個依賴屬性每次只能響應(yīng)一個動畫,如果開始第二個動畫,將自動放棄第一個動畫。

②線性插值動畫的常用屬性:

From屬性:屬性開始值。

若沒有硬編碼屬性值,此時動畫省略設(shè)置該屬性的話,動畫無法執(zhí)行會報(bào)錯,因?yàn)闊o法獲取該屬性值。

PRivate void myButtonn_Click(object sender, RoutedEventArgs e){    DoubleAnimation wa = new DoubleAnimation();    wa.From = myButtonn.ActualWidth;    wa.To = this.Width - 30;    wa.Duration = TimeSpan.FromSeconds(5);    myButtonn.BeginAnimation(Button.WidthProperty, wa);}ActualWidth屬性指按鈕當(dāng)前渲染時的寬度。這樣設(shè)置意味著即使在動畫執(zhí)行中單擊按鈕,也不會使動畫從頭再來。

To屬性:屬性結(jié)束值。

若省略To屬性,則意味著回到元素的原始屬性值。

By屬性:創(chuàng)建按設(shè)置的值改變動畫,而不是給定目標(biāo)值。會實(shí)現(xiàn)元素觸發(fā)一下,變化一點(diǎn)的效果。

private void myButtonn_Click(object sender, RoutedEventArgs e){    DoubleAnimation wa = new DoubleAnimation();    wa.From = myButtonn.ActualWidth;    wa.By = 10;    wa.Duration = TimeSpan.FromSeconds(5);    myButtonn.BeginAnimation(Button.WidthProperty, wa);}Duration屬性:動畫執(zhí)行時間。

三、動畫的生命周期①WPF動畫是暫時的,它不會能真正改變基本屬性的值。

②當(dāng)動畫執(zhí)行完成時,通過代碼設(shè)置元素屬性值是不起作用的,這是因?yàn)樵貙傩詢?yōu)先使用動畫之后的值。

③通過設(shè)置AutoReverse屬性為True,可反轉(zhuǎn)動畫。

④FillBehavior屬性。通常該屬性值為HoldEnd,這意味著動畫結(jié)束后,元素屬性值為動畫結(jié)束后的值。若設(shè)置該屬性值為Stop,則意味著只要動畫結(jié)束,屬性就會自動恢復(fù)為原來的值。

⑤AccelerationRatio屬性加速動畫執(zhí)行速度,DecelerationRatio屬性減速動畫執(zhí)行速度,兩個值都用百分比表示。

通過加速和減速的動畫看上去更加自然。

⑥RepeatBehavior屬性可控制如何重復(fù)運(yùn)行動畫。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 霸州市| 乌审旗| 清苑县| 安乡县| 盐津县| 林甸县| 安新县| 万盛区| 白城市| 南川市| 安顺市| 白玉县| 麻栗坡县| 丹东市| 顺义区| 兴山县| 南丹县| 彭水| 邵阳县| 雷波县| 宜宾市| 玉屏| 永济市| 贞丰县| 博兴县| 张家口市| 宝坻区| 渝北区| 孟村| 石狮市| 澄城县| 海林市| 渭源县| 佛坪县| 新野县| 麻江县| 呼玛县| 泗洪县| 蚌埠市| 舟曲县| 乐山市|