2008-09-17 2 views
4

В приложении формы окон C#. У меня есть заставка с несколькими многопоточными процессами, происходящими в фоновом режиме. То, что я хотел бы сделать, - это когда я сначала показываю экран заставки, я хотел бы, чтобы он выглядел «затухающим». И затем, как только все процессы закончатся, я бы хотел, чтобы это выглядело так, как будто заставка «затухает». Я использую C# и .NET 2.0. Благодарю.Ввод и выключение заслонки

ответ

3

Вы можете использовать свойство Opacity для формы, чтобы изменить затухание (между 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 блокирует поток пользовательского интерфейса, тем самым предотвращая его обновление. – 2009-11-09 13:19:30

+0

Идан успокоиться. Сначала я написал -0.5, и это была опечатка, ведь 0.05 может быть более ценным. Но вы можете использовать тот, который вам нужен ... Thread.Sleep() не блокирует пользовательский интерфейс, так как он дает место перерисованию. Не лучшее решение, возможно, но оно действительно работает. – 2010-02-08 21:31:46

5

При использовании свойства Opacity необходимо помнить, что его тип double, где 1.0 - полная непрозрачность, а 0.0 - полностью прозрачность.

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

     if (this.Opacity <= 0) 
     { 
      this.Close(); 
     }    
    } 
Смежные вопросы