Непрозрачность оконной формы. Как контролировать? - PullRequest
4 голосов
/ 30 декабря 2011

У меня есть одно окно приложения, теперь я хочу изменить form opacity при запуске приложения. Означает, что при запуске приложения будет отображаться форма low opacity, а при увеличении времени будет отображаться полная форма с 100 opacity. Так как это сделать. (Должен ли я использовать таймер для контроля непрозрачности, если да, то как ????)

Ответы [ 4 ]

5 голосов
/ 30 декабря 2011

в конструкторе формы вы можете написать что-то вроде этого.

this.Opacity = .1;
timer.Interval = new TimeSpan(0, 0, intervalinminutes);
timer.Tick += ChangeOpacity;
timer.Start();

И затем определить метод, подобный этому

void ChangeOpacity(object sender, EventArgs e)
{
    this.Opacity += .10; //replace.10 with whatever you want
    if(this.Opacity == 1)
        timer.Stop();
}
3 голосов
/ 30 декабря 2011

Чтобы исчезать и исчезать формы, я обычно делаю это:

for(double opacity = 0.0; opacity <= 1.0; opacity += 0.2) {
    DateTime start = DateTime.Now;
    this.Opacity = opacity;

    while(DateTime.Now.Subtract(start).TotalMilliseconds <= 30.0) {
        Application.DoEvents();
    }
}

Это хорошее, простое решение, если вы будете делать это очень редко. В противном случае, я бы порекомендовал использовать темы.

1 голос
/ 30 декабря 2011

В конструкторе запустите элемент управления таймером, который будет вызывать метод при каждом тике.

timer.Interval = 1000; 
timer.Tick += new EventHandler(TimerEventProcessor);
timer.Start(); 

............

 private static void TimerEventProcessor(Object myObject,
                                            EventArgs myEventArgs) 
  {
       if(this.Opacity < 1)
         this.Opacity += .1;
       else
           timer.Stop(); 
  }
0 голосов
/ 30 декабря 2011

В конструкторе установите непрозрачность равной 0 и запустите таймер с интервалом примерно в 10 или 100 миллисекунд.В событии timer_Tick вам просто нужно запустить this.Opacity += 0.01;

. Это позволит сделать так, чтобы непрозрачность начиналась с 0 и увеличивалась на 0,01 каждые несколько миллисекунд до 1 (непрозрачность удваивается, когдаоно достигает значения 1, оно полностью непрозрачно)

...