C# WinForm 实现窗体淡入淡出

有时候我们需要给窗体的打开和关闭添加点动画效果.最近正好有这类需求,于是研究了下窗体的淡入淡出,很简单就实现了,这里发表下成果,以供朋友们使用.

在Windows,有一个API,可以设置窗体的可见度,我的淡入淡出就是基于此实现.

要使用Windows API,首先在类的最上面引用下InteropServices命名空间,代码如下:

OK,然后在类里面,声明要引用的系统API,以及定义几个常量:

然后在窗体的Load事件里面,把窗体的扩展风格设置一下,如果不这么设置,那么对窗体的可见度设置就是无效的了:

然后就要用到SetLayeredWindowAttributes这个API了,它的第3个参数是窗体可见度(单位:byte),我们只要连续调用这个API,然后第3个参数缓缓增高,即可实现窗体淡入动画,参数值缓缓降低则淡出.

淡入我们做在窗体的Shown事件里,淡出做在FormClosing事件里,代码如下:

 

完成,运行看看吧~

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.