Pergunta

Em uma aplicação C # Windows Forms. Eu tenho uma tela com alguns processos multi-threaded acontecendo em segundo plano. O que eu gostaria de fazer é quando eu exibir a tela inicial, inicialmente, eu gostaria de tê-lo parecem "fade in". E, em seguida, uma vez que todos os processos terminar, gostaria que ele apareça como se a tela inicial é "desaparecendo". Eu estou usando C # e .NET 2.0. Obrigado.

Foi útil?

Solução

Você pode usar um temporizador para modificar o Form.Opacity nível .

Outras dicas

Ao usar opacidade propriedade tem que lembrar que o do tipo double, onde 1.0 é opacidade total, e 0,0 é completamente transparência.

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

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

Você pode usar a propriedade de opacidade para a forma de alterar o fade (entre 0,0 e 1,0).

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
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top