The*_*der 7 c# label opacity fadeout winforms
这似乎是一个简单的问题......
我正在寻找C#Winforms中的Label.Opacity属性.
我想做的是有一种逐渐消失标签的方法.通过计时器或许?
由于没有Opacity我试图将它的transperency设置为更高的数字,直到它足够高,该项目应该是不可见的.但我似乎无法做到这一点.
目前我有:
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();
};
}
};
}
Run Code Online (Sandbox Code Playgroud)
这就是我用来淡出标签的方法:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
也许不是最好的解决方案,但我仍然是初学者,所以这是我可以贡献的.我把它放在timer1.Interval最低限度并玩,fadingSpeed直到它看起来很好.
| 归档时间: |
|
| 查看次数: |
14744 次 |
| 最近记录: |