65.9K
CodeProject 正在变化。 阅读更多。
Home

C# 中的窗体透明度

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.94/5 (9投票s)

2008年9月2日

CPOL

1分钟阅读

viewsIcon

58545

downloadIcon

2187

了解如何使用 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 和淡出效果)与上述方法非常相似。我们只需要启用或禁用计时器。有关更多详细信息,请参阅源代码。

祝您好运!

© . All rights reserved.