【问题标题】:Decrease Form Opacity after Form is shown显示表格后降低表格不透明度
【发布时间】:2016-11-04 13:49:39
【问题描述】:

我想简短地说:This 是我想要在不点击任何按钮的情况下归档的内容。当我更改 Form1_LoadForm1_Shown 中的 opactiy 时,应用程序将不会显示给用户,直到我的代码完成它的事情。
就是代码

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

谁能告诉我如何归档我的目标?

【问题讨论】:

  • 嗯,不,该效果会在启动屏幕关闭时应用,而不是在主窗口打开时应用。例如它的 FormClosing 事件。将不透明度设置为 99,这样它就不会闪烁。你首先需要一个启动画面。

标签: c# winforms


【解决方案1】:
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。 我假设你有什么你使用同步方法的问题,必须在程序继续下一个代码片段之前完成。这就是为什么在代码应用程序加载之前没有向您显示窗口的原因。

代码来自:Better algorithm to fade a winform

【讨论】:

  • 您从here 得到了答案。从其他帖子复制时请添加来源。
猜你喜欢
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
  • 2014-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 2018-01-31
相关资源
最近更新 更多