c# - 创建淡出标签

标签 c# winforms label opacity fadeout

这似乎是一个简单的问题...

我正在寻找 C# Winforms 中的 Label.Opacity 属性。

我想做的是有一种方法可以逐渐淡出标签。也许通过计时器?

因为没有不透明度,我试图将它的透明度设置为更高的数字,直到它足够高以至于该项目应该是不可见的。但我似乎无法完成这项工作。

目前我有:

public FadeLabel()
{
    MyTimer timer = new MyTimer();
    this.TextChanged += (s, ea) =>
    {
        if (timer.IsActive)
        {
            timer.Reset();
        }
        else
        {
            timer.WaitTime.Miliseconds = 500;
            timer.Start();
            timer.Completed += (a) =>
            {
                int i = 0;
                Timer tm = new Timer();
                tm.Interval = 1;
                tm.Tick += (sa, aea) =>
                {
                    i++;
                    this.ForeColor = Color.FromArgb(i, Color.Black);
                    this.BackColor = Color.FromArgb(i, Color.White);
                    this.Invalidate();
                    if (i == 255)
                    {
                        tm.Stop();
                    }
                };
                tm.Start();
            };
        }
    };
}

最佳答案

这是我用来淡出标签的方法:

    label1.Text = "I'm fading out now";
    label1.ForeColor = Color.Black;
    timer1.Start();

    private void timer1_Tick(object sender, EventArgs e)
    {
        int fadingSpeed = 3;
        label1.ForeColor = Color.FromArgb(label1.ForeColor.R + fadingSpeed, label1.ForeColor.G + fadingSpeed, label1.ForeColor.B + fadingSpeed);

        if (label1.ForeColor.R >= this.BackColor.R)
        {
            timer1.Stop();
            label1.ForeColor = this.BackColor;
        }
    }

也许不是最好的解决方案,但我仍然是初学者,所以这就是我可以做出的贡献。我将 timer1.Interval 设置为最小值并使用 fadingSpeed 直到它看起来不错。

关于c# - 创建淡出标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5470967/

相关文章:

c# - C# windows 应用程序中的文件上传

r - 标签、数据点等的重叠绘制(w geom_dl 和直接标签)

python - 如何使用 matplotlib 模块 pyplot 在 x/y 标签中放置变量

ios - 将 tableview 单元格的 firebase 数据检索到 View Controller 的标签

c# - 如何使用 HtmlAgilitiPack 附加属性?

c# - if, else if 与映射性能

.net - 如何知道 DataGridView 的数据绑定(bind)何时*真正*完成?

c# - 如何进行插值

c# - DataProtectionScope.CurrentUser 加密似乎不能跨机器工作

c# - 删除在数据库中存储为散列的组合框项目 C#