1. 程式人生 > >C#水波紋特效自定義控制元件

C#水波紋特效自定義控制元件

很久前在一款軟體上看到水波紋的效果就深深喜歡上這中特效,但是一直沒有找到原始碼。最近從網上找到一份C++的原始碼,利用休息時間分析一下翻譯成C#版本。為了便於使用,特封裝成控制元件。(.NET Framework2.0)
使用步驟:
1、開啟VS,在“工具欄”的“常規”下“右擊”--“選擇項”--“瀏覽”選中WaterWave.dll檔案,把水波紋控制元件新增到工具箱中。
2、把控制元件新增到窗體中,設定Image屬性。
3、在窗體的Load()事件中加入如下程式碼:
   waterWave1.load();
4、執行,滑鼠移動到圖片上看看。

該控制元件有3個自定義屬性
Image:顯示水波紋的圖片,
Auto:是否自動產生水波紋,預設為False。
Number:源點數,也就是從哪幾個點產生水波紋。不要設定太大。50和1000效果差不多。
注意:當Auto為False時,滑鼠移動到圖片時從滑鼠位置產生水波紋,此時Number屬性不起作用
      當Auto為True時,自動產生水波紋,此時Number屬性才會起作用。
      圖片不要太大,否則效果不明顯。
      某些圖片可能不支援,換種圖片或者換種格式試試。
      程式有不完美的地方還請諒解。
      該特效局佔記憶體。^_^
                                       coolszy
                                       2010年9月20

 

 

演示程式碼:

//如果想自動產生水波紋需如下設定
//waterWave1.Auto = true;
//waterWave1.Number= 50;

waterWave1.load();
//呼叫玩load()方法後才能修改Height和Width
//waterWave1控制元件的Height和Width等於圖片的Height和Width
waterWave1.Top = 0;
waterWave1.Left = 0;
this.Height = waterWave1.Height;
this.Width = waterWave1.Width;