Fade-in Fade-out Effect on your form 窗体淡入淡出效果

本文介绍三种实现窗体淡入淡出效果的方法:通过调整Opacity属性结合线程等待、新开线程循环调整透明度及使用WinAPI AnimateWindow函数。解决了窗体加载时不显示淡入效果的问题。

淡入淡出效果很简单,给个例子先:

private void Form1_Load(object sender, EventArgs e)

        {

            for (int c = 0; c != 10; c++)

            {

                this.Opacity += 0.1;

                //睡眠一会

            }

        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)

        {

            for (int c = 10; c != 0; c--)

            {

                this.Opacity -= 0.1;

                //睡眠一会

            }

        }

退出的时候是这样的效果,但是显示没有这个效果,无意中试了一下在Load事件开头加上this.Show();

现在运行、退出都是淡入淡出了。

本篇没有写什么内容,主要是解决不渐现的bug。

但是Applcation.Run()默认应该就是调用Show()为什么还要再调用一次才有效果?

方式二:

新开一个线程用作等待线程,例如:

在form9_shown里面新建一个thread,thread.start();执行如下内容:

函数f1()只有一句话 this.opacity += 0.01;

函数func是委托里的函数,循环100次----(每次等待5-10ms,执行f1()   )

这样可以避免渐现窗体会挂起窗体的问题,挂起时,鼠标表示很忙...

方式三:win api AnimateWinodw()

转载于:https://www.cnblogs.com/asight/archive/2010/07/26/1785361.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值