显示表单后减少表单不透明度

时间:2016-11-04 13:49:40

标签: c# winforms

我想简短说明:This是我想要的,不用点击任何按钮。当我更改Form1_LoadForm1_Shown中的opactiy时,在我的代码完成之前,应用程序将不会显示给用户。
这就是代码

for (int i = 0; i < 100; i++)
{
    this.Opacity -= .05;
    System.Threading.Thread.Sleep(50);
}

谁能告诉我如何实现我的目标?

1 个答案:

答案 0 :(得分:0)

private async void FadeIn(Form o, int interval = 80) 
{
    //Object is not fully invisible. Fade it in
    while (o.Opacity < 1.0)
    {
        await Task.Delay(interval);
        o.Opacity += 0.05;
    }
    o.Opacity = 1; //make fully visible       
}

private async void FadeOut(Form o, int interval = 80)
{
    //Object is fully visible. Fade it out
    while (o.Opacity > 0.0)
    {
        await Task.Delay(interval);
        o.Opacity -= 0.05;
    }
    o.Opacity = 0; //make fully invisible       
}

这是我在Stackoverflow上找到的。使用那些方法Form1_Load。 问题我假设你使用了同步方法,这必须在programm contineus之前用下一段代码完成。这就是为什么在加载代码应用程序之前没有向您展示Windows的原因。

代码来自:Better algorithm to fade a winform