gpt4 book ai didi

c# - 创建淡出标签

转载 作者:太空狗 更新时间:2023-10-29 20:55:29 26 4
gpt4 key购买 nike

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

我正在寻找 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com