C# 中的窗体透明度






2.94/5 (9投票s)
了解如何使用 C# 更改窗体的透明度。
引言
在 C# 中,我们可以使用 Opacity
属性访问 Windows 窗体的透明度。本文将向您展示如何使用一个简单的项目来更改它。
使用代码
System.Windows.Forms.Timer
我们将尝试在我们的 WinForm 上实现淡入和淡出效果。为此,我们使用 System.Windows.Forms.Timer
。
我们将会在我们的项目中用到三个 Timer
TimerFadein
:显示淡入效果。TimerFadein
在其Tick
事件上运行以下方法。
private void TimerFadein_Tick(object sender, EventArgs e)
{
//Prevents Timers overlapping
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
:显示淡出效果。TimerFadeout
在其 Tick
事件上运行下面的方法。private void TimerFadeout_Tick(object sender, EventArgs e)
{
//Prevents Timers overlapping
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
:显示 0.5 的透明度和淡出效果。timerHalfFadeOut
在其 Tick
事件上运行下面的方法。private void timerHalfFadeOut_Tick(object sender, EventArgs e)
{
//Prevents Timers overlapping
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);
}
以淡入效果运行 WinApp
要以淡入效果显示我们的应用程序,我们必须在构造函数中将 Form
的透明度更改为零。我们还必须启用 TimerFadein
,才能以淡入效果显示我们的 WinApp。
public Form1()
{
InitializeComponent();
this.Opacity = 0;
TimerFadein.Enabled = true;
}
其他事情(例如关闭 WinApp 和淡出效果)与上述方法非常相似。我们只需要启用或禁用计时器。有关更多详细信息,请参阅源代码。
祝您好运!