C#: Form con effetto Fadein e Fadeout

Molti software utilizzano questo effetto, soprattutto nel loro avvio iniziale (loading screen). Ecco una classe per realizzarlo:

public class WindowAnimator
{
Form window;
float Step;
Timer time;

public WindowAnimator(Form FormToAnimate)
{
window = FormToAnimate;
}

public void WindowFadeIn(int interval, float steps)
{
//Salva steps
Step = steps;
//Crea il Timer
time = new Timer();
time.Interval = interval;
time.Tick += new EventHandler(Timer_TickIn);
time.Start();
}
private void Timer_TickIn(object sender, EventArgs e)
{
//Controlla l'opacità del form
if (window.Opacity != 1.0)
{
//Se è inferiore di 1 incrementa l'opacità
window.Opacity += Step;
}
else
{
//Finito, stoppa il timer.
time.Stop();
}
}

public void WindowFadeOut(int interval, float steps)
{
Step = steps;
time = new Timer();
time.Interval = interval;
time.Tick += new EventHandler(Timer_TickOut);
time.Start();
}

private void Timer_TickOut(object sender, EventArgs e)
{
if (window.Opacity != 0.1)
{
window.Opacity -= Step;
}
else
{
time.Stop();
}
}
}

1 commenti:

Anonimo ha detto...

Davvero interessante, pensavo che pochi in italia trattassero C# sui loro blog ;) siamo in due da oggi!

Ti linko nel mio blogroll!

Posta un commento