EyesBaby功能实现之窗口渐现效果


窗口渐现效果主要是增强软件的用户体验。目前winform程序在Vista/Win7上已经自动具备了该功能,所以只有在XP等早期版本系统上才有勇武之地。

  说说具体实现吧:-)

  1.利用Timer控件控制窗体的透明度(Opacity)。

        /// <summary>
        /// 显示窗体
        /// </summary>
        private void ShowWin()
        {
            this.tsmiShowHide.Text = "隐藏";
            this.SetWindowState();
            this.Opacity = 0;
            // 打开窗口渐现效果
            Timer tStart = new Timer();
            tStart.Interval = 100;
            tStart.Tick += new EventHandler(tStart_Tick);
            tStart.Start();
        }
        /// <summary>
        /// 隐藏窗体
        /// </summary>
        private void HideWin()
        {
            this.tsmiShowHide.Text = "显示";
            // 关闭窗口渐现效果
            Timer tClose = new Timer();
            tClose.Interval = 100;
            tClose.Tick += new EventHandler(tClose_Tick);
            tClose.Start();
        }
        /// <summary>
        /// 关闭窗体渐现效果
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void tClose_Tick(object sender, EventArgs e)
        {
            // 每一次执行透明度减少10%
            this.Opacity -= 0.1;
            if (this.Opacity <= 0)
            {
                ((Timer)sender).Stop();
            }
        }
        
        /// <summary>
        /// 打开窗体渐现效果
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void tStart_Tick(object sender, EventArgs e)
        {
            // 每一次执行透明度增加10%
            this.Opacity += 0.1;
            if (this.Opacity == 1)
            {
                ((Timer)sender).Stop();
                this.Focus();
            }
        }

  渐现效果用在EyesBaby上也是所谓小试牛刀吧。

  总结

  现在EyesBaby功能实现部分写到这,就到此告一小节了。前面写了一部分,其实技术含量并没有多少。本人技术水平一斑,写出来东西大部分还只能是一种自我记录的方式,并不能起到言传身授的境界,望各位海量!需要学习的地方很多,也有博友提了不少好的建议。比如自动更新部分。在此拜谢了!

  将来希望能多开发些对我们工作/生活有帮助的个人软件(本人信仰“技术改变生活”),还希望大家多多提供建议和技术帮助!


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3