C# 几种窗口淡入淡出效果代码

前段时间下载了一个MFC写的系统管理软件,启动和退出程序采用了淡入淡出效果。我便想,这种效果能否用C#实现。搜索相关网络资料后,得到的结果是肯定的,我总结了下,大概有三种比较常用的方法,分别是使用计时器、循环控制和AnimateWindow函数来实现该效果,其中使用计时器、循环控制是采用的对FormOpacity属性进行设置,通过不断刷新窗体实现淡入淡出效果,而API AnimateWindows是微软提供的专门的窗口特效函数,在MSDN上的描述为:The AnimateWindow function enables you to produce special effects when showing or hiding windows. There are four types of animation: roll, slide, collapse or expand, and alpha-blended fade.

可以看到它有四种类型:滚动、平滑、折叠和展开、alpha值的渐变,在此实例中我们使用的是BLEND

下面我们来看看他们的具体代码:

(1)       使用计时器,此方法是让Form.opacity随计时器间隔时间变化而不断变化的值来实现效果,通过timer1_Tick事件来实现了opacity的循环改变。

private void timer1_Tick(object sender, EventArgs e)

        {

            Double WShow = 0.0;

            this.Opacity = WShow;

            WShow += 0.1;

            if (WShow >= 1)

            {

                timer1.Dispose();

            }  

 

        }

(2)         使用循环,此方法有些类似于使用计时器的方法,都上通过循环改变窗体opacity值来实现效果,

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值