c#渐显窗口的实现

窗体的Opacity属性用于设置窗体的透明度。通过定时器对该属性进行改变可以实现窗体的渐显效果。由于最近在搞WPF所以代码也是基于WPF实现的,winform的也差不多就不贴出来了,原理上面已经说的很清楚了。

代码如下:

为窗体添加loaded事件

        private void Window_Loaded_1(object sender, RoutedEventArgs e)
        {

            this.Opacity = 0;
            DispatcherTimer timer1 = new DispatcherTimer();
            timer1.Interval = TimeSpan.FromMilliseconds(100);
            timer1.Tick += Timer_Tick;
            timer1.Start();
        }

定时器回调部分:

        private void Timer_Tick(object sender,System.EventArgs e)
        {
            if (this.Opacity < 1)
            {
                this.Opacity += 0.1;
            }
        }

由于定时器渐显效果实现完毕后已经没有作用所以,上面代码可以优化为下面所示,以节省系统资源

将timer1设为全局变量

	DispatcherTimer timer1 = new DispatcherTimer();


        private void Window_Loaded_1(object sender, RoutedEventArgs e)
        {

            this.Opacity = 0;
            
            timer1.Interval = TimeSpan.FromMilliseconds(100);
            timer1.Tick += Timer_Tick;
            timer1.Start();
        }
定时器回调部分:

private void Timer_Tick(object sender,System.EventArgs e)
        {
            if (this.Opacity < 1)
            {
                this.Opacity += 0.1;
            }
            else
            {
                timer1.Stop();
            }
        }


原文地址:https://www.cnblogs.com/fornet/p/2976187.html