利用Visual C# 2005制作簡單動畫效果
2006/12/15 23:20:05

    一般的 Windows Form 通常是運用各種控件來顯示數據,然而如果您希望在窗體中加入特殊效果來凸顯數據內容,那么圖形與動畫將是非常不錯的選擇。
 
 
 
 


  一般來說,我們會使用 .Net Framework中 的 GDI+ 函式庫來制作圖形與動畫效果。在 GDI+ 還沒有推出之前,如果要產生二維的 向量圖形、影像、以及印刷樣式,必須使用舊版操作系統中的GDI。新的 GDI+ 是 Windows XP 的一部份,除了加入新功能之外,還最佳化現有功能以便具體改進 GDI(也就是舊版 Windows 包含的繪圖裝置接口)的效能。

  程序范例

   
圖表1


圖表2


圖表3
  我們的程序范例示范了三種動畫效果,分別是:眨眼效果、彈跳的球、以及文字閃爍,當程序執行時會自動展示第一種眨眼效果,如圖表1到3所示。

  運用之前「如何利用程序代碼動態存取組件信息」的技巧,將組件的 AsmFQName 屬性值指派給窗體的 Text 屬性,并將先前已經加入項目資源的四張圖片名稱指派給數組,之后就使用此數組來示范眨眼效果,程序代碼撰寫于窗體的Load事件處理例程中,如下所示:

    private void Blog_DemoForm002_Load(object sender, EventArgs e)
{
 AssemblyInfoClass myAssembly = new AssemblyInfoClass();

 this.Text = myAssembly.AsmFQName;

 // 指派數組成員。
 arrImages[0] = Properties.Resources.Eye1;
 arrImages[1] = Properties.Resources.Eye2;
 arrImages[2] = Properties.Resources.Eye3;
 arrImages[3] = Properties.Resources.Eye4;
}
   
圖表4
  如果您要使用 Visual C# 來制作「關于」對話框,建議先使用Visual Studio 2005所提供的模板來產生關于對話框窗體,然后再自訂窗體所要呈現的內容(如圖表4所示)。在此,我們選擇將組件的相關信息填入窗體對應的控件,請于「關于」對話框窗體的 Load 事件處理例程中撰寫下列程序代碼:

    private void AboutBox_Load(object sender, EventArgs e)
{
 AssemblyInfoClass myAssembly = new AssemblyInfoClass();

 labelProductName.Text = "產品名稱:" + myAssembly.Product;
 labelVersion.Text = "版本:" + myAssembly.Version;
 labelCopyright.Text = "版權宣告:" + myAssembly.Copyright;
 labelCompanyName.Text = "公司名稱:" + myAssembly.Company;
 textBoxDescription.Text = "細部描述:" +
 myAssembly.Description;
}
  要顯示「關于」對話框,請替「說明」菜單項目的Click事件處理例程中撰寫下列程序代碼:

    private void toolStripMenuItem4_Click(object sender, EventArgs e)
{
 // 顯示關于對話框。
 AboutBox MyAboutBox = new AboutBox();

 // 設定關于對話框的啟始位置。
 MyAboutBox.StartPosition = FormStartPosition.CenterScreen;
 MyAboutBox.Show();
}
  當用戶點選不同的選項按鈕時,將會執行下列程序代碼來顯示不同的動畫效果。這些程序代碼撰寫于選項按鈕的 CheckedChanged 事件處理函式中,如下所列:

    private void RadioButtons_CheckedChanged(object sender,
EventArgs e)
{
 if(optWink.Checked)
 {
  tmrAnimation.Interval = WINK_TIMER_INTERVAL;
 }
 else if(optBall.Checked)
 {
  tmrAnimation.Interval = BALL_TIMER_INTERVAL;
 }
 else if(optText.Checked)
 {
  tmrAnimation.Interval = TEXT_TIMER_INTERVAL;
 }
 OnResize(EventArgs.Empty);
}
  自訂函式 RadioButtons_CheckedChanged 會叫用 OnResize 函式來產生不同的圖形,請大家注意,我們系使用 Graphics 類別的 FillEllipse 方法來繪制球形,程序代碼如下所列:

    protected override void

下一頁
返回列表
返回首頁 主站蜘蛛池模板: 91精品国产品国语在线不卡| 亚洲av无码成人精品国产| 老子影院午夜伦手机不卡无| 国产精品亚洲专区无码WEB | 久久国产一区二区三区| 欧美日韩国产亚洲一区二区三区| 免费看一级做a爰片久久| 视频一区二区三区欧美日韩| 国产电影入口麻豆| 国产a毛片高清视| 99精品国产在热久久无毒不卡 | 免费看特黄特黄欧美大片| 草草浮力影院第一页入口| 国产福利第一页| 91手机在线视频| 天堂…中文在线最新版在线| 丁香六月久久久| 日本xxx在线| 久久精品国产欧美日韩| 欧美一级视频在线| 亚洲深深色噜噜狠狠爱网站| 男人把女人桶爽30分钟一| 午夜性伦鲁啊鲁免费视频| 色噜噜狠狠狠色综合久| 国产免费爽爽视频在线观看| 人妖在线精品一区二区三区| 国产精品第9页| AV无码久久久久不卡网站下载| 日韩影视在线观看| 亚洲va韩国va欧美va天堂| 欧美日韩国产电影| 人人爽人人澡人人高潮| 精品久久久久久| 午夜人妻久久久久久久久| 翁熄系列乱老扒bd在线播放| 国产乱码卡一卡2卡三卡四| 香蕉视频好色先生| 国产思思99re99在线观看| 国产男女爽爽爽爽爽免费视频| 国产精品不卡视频| 曰批视频免费40分钟试看天天|