【发布时间】:2011-07-25 03:59:00
【问题描述】:
这似乎是一个简单的问题......
我正在 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();
};
}
};
}
【问题讨论】:
-
如果可以,请显示 MyTimer 类。
-
无关紧要。我发现默认情况下无法在 winforms 标签上使用透明度。
-
顺便说一句,要使标签不可见,将其颜色设置为背景颜色就足够了,而不是摆弄alpha通道。
标签: c# winforms label opacity fadeout