關於WPF動畫的簡單例子


相信許多新人對WPF的動畫十分感興趣,但又不知道從何學起。在此,我通過幾個簡單的例子給大家簡單的講一下WPF的一種動畫。

首先要引用命名空間:

using System.Windows.Media.Animation;

 

假設在窗體內新建一個按鈕:

Grid grid=new Grid();//新建一個Grid布局容器
this.Content = grid; 
Button  mybutton=new Button();
mybutton.Content="Click me!";//新建按鈕
mybutton.Width=60;
mybutton.Height=30;
mybutton.Click += mybutton_Click;
grid.Children.Add(mybutton);


按鈕單擊事件:

Button mybutton = (Button)sender;
DoubleAnimation myani = new DoubleAnimation(); //實例化一個DoubleAninmation對象
myani.From = mybutton.Width;//開始值
myani.To = mybutton.Width+100;//結束值
myani.Duration = TimeSpan.FromSeconds(3); //所用時間
Storyboard.SetTarget(myani, mybutton);  //設置應用的對象
Storyboard.SetTargetProperty(myani, new PropertyPath("Width"));  //設置應用的依賴項屬性
Storyboard s = new Storyboard();// 實例化一個故事板
s.Children.Add(myani);//將先前動畫添加進來
s.Begin(); //啟動故事版

 

現在你可以運行一下試試,發現Button在2秒之內Width增加了100.

至此,一個簡單的動畫就完成了。當然,你還可以處理Story的Completed屬性,創建一個恢復原狀的動畫,只需要忽略To屬性:

ClockGroup clockgroup = (ClockGroup)sender; //獲取當前的ClockGroup對象
DoubleAnimation mys = ((DoubleAnimation)clockgroup.Children[0].Timeline);// 獲取當前的DoubleAnimation對象
Button mybutton=(Button)Storyboard.GetTarget(mys); //獲取當前按鈕對象
DoubleAnimation myani = new DoubleAnimation(); //實例化一個DoubleAninmation對象
myani.From = mybutton.Width;//開始值
//忽略結束值
myani.Duration = TimeSpan.FromSeconds(1); //所用時間
Storyboard.SetTarget(myani, mybutton);  //設置應用的對象
Storyboard.SetTargetProperty(myani, new PropertyPath("Width"));  //設置應用的依賴項屬性
Storyboard s = new Storyboard();// 實例化一個故事板
s.Children.Add(myani);//將先前動畫添加進來
s.Begin(); //啟動故事版

怎么樣,是不是很簡單啊?除了DoubleAnimation動畫,還有ColorAnimation,ByteAnimation等42個動畫,它們中的一些是與DoubleAnimation是一樣的用法,在此就不過多探討了。

 

我也是新手,大家共同學習,高手見笑了。

 

附下載地址:https://skydrive.live.com/redir.aspx?cid=f408a3d3df420664&resid=F408A3D3DF420664!175&parid=F408A3D3DF420664!109&authkey=!AB3d5yx9ltzENxg


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM