很久前在一款软件上看到水波纹的效果就深深喜欢上这中特效,但是一直没有找到源码。最近从网上找到一份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;