2008-09-17 72 views
4

在C#窗体表单应用程序中。我有一个启动画面,在后台发生一些多线程进程。我想要做的是当我最初显示启动画面时,我想让它看起来“淡入”。然后,一旦所有的过程完成,我希望它看起来好像启动画面“淡出”。我正在使用C#和.NET 2.0。谢谢。淡入淡出屏幕

回答

3

您可以使用窗体的不透明度属性来更改淡入淡出(介于0.0和1.0之间)。

2
While(this.Opacity !=0) 
{ 
    this.Opacity -= 0.05; 
    Thread.Sleep(50);//This is for the speed of the opacity... and will let the form redraw 
} 
+2

所以你在2次迭代中“褪色”?我几乎不能说这是一个淡出......更重要的是,我相信你的Thread.Sleep会阻止UI线程,从而阻止它更新。 – 2009-11-09 13:19:30

+0

伊丹冷静下来。首先我写了-0.5,这是一个错字,实际上0.05可能是一个更好的价值。但是你可以使用你想要的那个... Thread.Sleep()不会阻止UI,因为它为重绘提供了空间。也许不是最好的解决方案,但它确实有效。 – 2010-02-08 21:31:46

5

使用不透明度属性时必须记住它的double类型,其中1.0是完全不透明度,0.0是完全透明的。

private void fadeTimer_Tick(object sender, EventArgs e) 
    { 
     this.Opacity -= 0.01; 

     if (this.Opacity <= 0) 
     { 
      this.Close(); 
     }    
    }