2008-09-17 75 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(); 
     }    
    }