自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#透明窗體及按鈕的效果淺析

開發(fā) 后端
C#透明窗體及按鈕的效果通過使用Alpha Blending技術(shù)來達到一種漸變的效果,希望對你了解和學(xué)習(xí)C#透明窗體及按鈕的效果有所幫助。

C#透明窗體及按鈕的效果就是使用Alpha Blending技術(shù)。Alpha Blending技術(shù)是一個混合各種顏色值并產(chǎn)生透明效果的過程。具體的實現(xiàn)原理也很簡單:在GDI+中,任何一種顏色由四種成分組成――Alpha,Red,Green和Blue。其中的Alpha成分則代表了一種顏色的透明程度,它的值在0到255之間變化。不言而喻,0代表完全透明而255則表示完全不透明。因此,你只要用透明效果創(chuàng)建一種顏色并用該顏色來畫圖像就可以完成圖像的透明處理了。

C#透明窗體及按鈕的效果:

1、C#按鈕透明:

設(shè)置按鈕的backcolor為0,0,0,0 的數(shù)字即可,同時設(shè)置FlatApperance的BorderSize為0,F(xiàn)latStyle為Flat,這樣該按鈕就完全透明了,此種效果常用在用背景做皮膚,然后在相應(yīng)位置放一個按鈕,控制按鈕事件,但不想讓用戶看到按鈕的情況;

2、C#窗體關(guān)閉時產(chǎn)生透明漸變:

前幾天無意中聽同學(xué)說想要弄個窗體漸變的,后來自己上網(wǎng)搜索了一下,發(fā)現(xiàn)些方法,自己試了一下是成功的,但是還是有些問題,郁悶。。。以下列出幾種我弄的方法:

① 新鍵窗體,窗體里加個按鈕,雙擊按鈕進入事件編寫代碼:

  1. while (this.Opacity > 0)  
  2. {  
  3. this.Opacity -= 0.02;  
  4. Thread.Sleep(20);  
  5. }  
  6. Application.Exit(); 

程序運行后點擊該按鈕關(guān)閉的時候整個窗體是先變成黑色,然后透明度再慢慢變小,變?yōu)?的時候程序再退出的,理論上來說我這個思路應(yīng)該是正確的,可是我就不知道是怎么回事了?

②往窗體里加入Timer控件,Interval設(shè)置為20,控件事件編寫代碼:

  1. if (this.Opacity > 0)  
  2. {  
  3. this.Opacity -= 0.02;  
  4. }  
  5. else {  
  6. Application.Exit();   

然后在按鈕的點擊事件中寫上  timer1.Start(); 就行了,經(jīng)測試,這種方法是可以的,窗體是慢慢變透明而后又關(guān)閉的。。。

C#透明窗體及按鈕的效果變化遇到的問題

可是隨后的問題又來了,我現(xiàn)在是想當我點擊窗體右上角的關(guān)閉按鈕時,窗體漸變關(guān)閉,我在窗體的FormClosing事件中輸入timer1.Start();,測試,結(jié)果是當我點擊窗體右上角的關(guān)閉按鈕時,程序是直接退出了,并沒有漸變消失,郁悶,搞不懂是怎么回事哦,而后上網(wǎng)找了好久,找到個解決方法,F(xiàn)ormClosing事件中輸入e.Cancel = true;   timer1.Start();  測試,結(jié)果,點擊關(guān)閉后,窗體是能漸變消失了,可是當透明度到0了以后,并沒有關(guān)閉,任務(wù)欄上的圖標還在,任務(wù)管理器里也有相應(yīng)的進程。

  1. private void Form1_FormClosing(  
  2. object sender, FormClosingEventArgs e)  
  3. {  
  4. timer1.Start();  
  5. e.Cancel = false;  
  6.      

兩步順序倒了,解釋下:在窗體關(guān)閉時事件 調(diào)用線程逐減透明度 然后 Cancel=false;是讓窗體關(guān)閉不取消樓主理解錯誤了 true是取消 所以窗體不會關(guān)閉Cancel 一般是關(guān)閉窗體時寫,例子:

  1. private void Form1_FormClosing(object sender, FormClosingEventArgs e)  
  2. {  
  3. DialogResult dr=MessageBox.Show("是否關(guān)閉本窗體","提示",MessageBoxButtons.YesNo);  
  4. if (DialogResult.No == dr)//如果點否按鈕  
  5. {  
  6. e.Cancel = true;//取消關(guān)閉  
  7. }  

C#透明窗體及按鈕的效果的實現(xiàn)基本情況就向你介紹到這里,希望對你了解和學(xué)習(xí)C#透明窗體及按鈕的效果有所幫助。

【編輯推薦】

  1. C# Timer用法及實例詳解
  2. C#窗體設(shè)計操作淺析
  3. C#窗體設(shè)計器開發(fā)實例詳解
  4. C#窗體移動實例解析
  5. C#透明窗體代碼詳解
責(zé)任編輯:仲衡 來源: 百度空間
相關(guān)推薦

2009-08-20 10:10:55

C#透明窗體

2009-09-07 03:37:51

C#窗體

2009-09-07 06:48:13

C#透明窗體

2009-09-07 06:07:46

C#窗體設(shè)計

2009-09-07 04:19:56

C#窗體事件

2009-09-07 04:56:52

C#模式窗體

2009-09-07 04:59:12

C#模式窗體

2009-09-07 05:31:39

C#窗體關(guān)閉事件

2009-08-14 16:41:22

C#啟動Windows

2009-09-07 05:24:22

C#窗體繼承

2009-08-18 10:30:30

C#枚舉

2009-08-25 09:39:21

創(chuàng)建C# Window

2009-09-02 17:28:26

C#程序設(shè)計Windows窗體

2009-08-26 14:16:17

C# FrameWor

2009-08-17 17:36:08

C# 枚舉

2009-09-02 17:53:42

C#程序設(shè)計Windows窗體

2009-08-27 13:05:06

C#接口特點C#接口實例

2009-08-24 11:35:20

C# 泛型應(yīng)用

2009-08-13 13:42:54

C#構(gòu)造函數(shù)

2009-08-31 16:37:20

C#接口定義
點贊
收藏

51CTO技術(shù)棧公眾號