Introduction
In C#, we can access the opacity of a Windows Form using the Opacity
property. This article shows you how we can change it, using a simple project.
Using the code
System.Windows.Forms.Timer
We'll try to implement a fade-in and fade-out effect on our WinForm. To do that, we use System.Windows.Forms.Timer
.
We will use three Timer
s in our project:
TimerFadein
: Shows the fade-in effect. TimerFadein
runs the following method on its Tick
event.
private void TimerFadein_Tick(object sender, EventArgs e)
{
if (timerHalfFadeOut.Enabled || TimerFadeout.Enabled)
{
TimerFadein.Enabled = false;
return;
}
timerRunning = true;
this.Opacity += 0.05;
if (this.Opacity >= 0.95)
{
this.Opacity = 1;
timerRunning = TimerFadein.Enabled = false;
}
maskedTextBoxOpacity.Text = (this.Opacity * 100).ToString();
hScrollBar1.Value = (int)(this.Opacity * 100);
}
TimerFadeout
: Shows the fade-out effect. TimerFadeout
runs the method below on its Tick
event.
private void TimerFadeout_Tick(object sender, EventArgs e)
{
if (timerHalfFadeOut.Enabled || TimerFadein.Enabled)
{
TimerFadeout.Enabled = false;
return;
}
timerRunning = true;
this.Opacity -= 0.05;
if (this.Opacity <= 0.05)
{
this.Opacity = 0;
Application.ExitThread();
}
maskedTextBoxOpacity.Text = (this.Opacity * 100).ToString();
hScrollBar1.Value = (int)(this.Opacity * 100);
}
timerHalfFadeOut
: Shows a 0.5 opacity and a fade-out effect. timerHalfFadeOut
runs the method below on its Tick
event.
private void timerHalfFadeOut_Tick(object sender, EventArgs e)
{
if (TimerFadeout.Enabled || TimerFadein.Enabled)
{
timerHalfFadeOut.Enabled = false;
return;
}
timerRunning = true;
this.Opacity -= 0.05;
if (this.Opacity <= 0.50)
{
this.Opacity = 0.5;
timerRunning = timerHalfFadeOut.Enabled = false;
}
maskedTextBoxOpacity.Text = (this.Opacity * 100).ToString();
hScrollBar1.Value = (int)(this.Opacity * 100);
}
Running the WinApp with a fade-in effect
To show our app with a fade-in effect, we must change the opacity of our Form
to zero in the constructor. We must enable TimerFadein
too, to show our WinApp with a fade-in effect.
public Form1()
{
InitializeComponent();
this.Opacity = 0;
TimerFadein.Enabled = true;
}
Well, other things (like closing the WinApp and the fade-out effect) are very similar to the above method. We only need to enable or disable the timers. See the source code for more details.
Good luck!