不過對於原本沒有在使用動畫或是flash的程式設計師
其實還是很難以想像要怎麼使用動畫的元件
基本上WPF提供的動畫依照動作的素材可以分成四類
表示在時間軸上所對應屬性的變化
素材 | 說明 |
---|---|
double | 套用在數值類型的屬性上 |
color | 套用在筆刷(顏色)屬性上 |
point | 套用在位置(座標)屬性上 |
string | 套用在字串屬性上 |
另外,也可以依照動畫的軌跡類型做分類
軌跡 | 說明 |
---|---|
僅有起點與終點 | 將對應的屬性由起點變化到終點,字串類形(string)無此此軌跡 |
設定主畫面(KeyFrame) | 設定需要經過的主畫面,可選擇性設定每張主畫面應該出現的時間點,並可以選擇每個主畫面的切換效果 |
給定路徑(Path) | 給定屬性應該變化的路徑,僅適用於數值類型(double)以及位置類型(point) |
如果希望設定一個按鈕的寬度由100到200
private void ApplyAnimation(Button b)
{
/// init a double animation
DoubleAnimation da = new DoubleAnimation();
/// set the from and to value of button width
da.From = 100;
da.To = 200;
/// set the duration of each animation
da.Duration = TimeSpan.FromSeconds(3);
/// apply the double animation to width of button
b.BeginAnimation(Button.WidthProperty, da);
}
這是最簡單的動畫了,只有設定起終點以及花費的時間
在DoubleAnimation中設定起終點的方式還有好幾種
指定欄位 | 說明 |
---|---|
From和To | 從From的數值,一直變化到To的數值 |
From和By | 從From的數值,一直變化到From+By的數值 |
From | 從From的數值,一直變化到原有的值(原本必須要有值) |
To | 從原有的值(原本必須要有值),一直變化到To的數值 |
By | 從原有的值(原本必須要有值),一直變化到該值+By的數值 |
另外還有一些常用的設定可以參考下表
屬性 | 說明 |
---|---|
AccelerationRatio | 加速度,從0加速到最大的變化比率,0~1 |
DecelerationRatio | 減速度,從最大速度減速到0的變化比率,0~1, AccelerationRatio與DecelerationRatio總和亦需介於0~1之間 |
AutoReverse | 動畫結束時,再將起始點互換播放一次 |
RepeatBehavior | 重複設定,設為RepeatBehavior.Forever即會不斷重複播放(包含AutoReverse的設定) |
FillBehavior | 動畫完成後的動作(若RepeatBehavior被設定,因為動畫沒有完成的時候,所以不會作用),若設成FillBehavior.Stop則會讓關聯的屬性回覆到原有的值(並非From的值),若不設定則預設為FillBehavior.HoldEnd,也就是保持終點的值 |
另外,這邊提供的是最簡易的加入動畫的方法
如果想要知道怎麼使用主畫面來設定動畫,可以參考
在WPF中加入主畫面(Key Frame)驅動的動畫
在XAML中還需要加入腳本(StoryBoard)才可以使用動畫
可以參考在WPF的XAML裡面使用動畫
--
參考資料
動畫概觀
HOW TO:不使用腳本而建立屬性的動畫
DoubleAnimation 類別
DoubleAnimation 成員
沒有留言:
張貼留言