C#水波紋特效自定義控制元件
阿新 • • 發佈:2019-02-08
很久前在一款軟體上看到水波紋的效果就深深喜歡上這中特效,但是一直沒有找到原始碼。最近從網上找到一份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;