繁体   English   中英

WinForms的平滑扩展和折叠动画

[英]Smooth Expanding and Collapsing Animation for WinForms

我正在尝试为我的表单获取一个平滑的扩展和折叠动画。 我当前的动画确实很不稳定而且不一致。 这是动画的Gif。 还有另一种方法可以不冻结表格吗?

private void ShowHideToggle_CheckStateChanged(object sender, EventArgs e)
    {
        if (ShowHideToggle.Checked) //checked = expand form
        {
            ShowHideToggle.Text = "<";
            while (Width < originalWidth)
            {
                Width++;
                Application.DoEvents();
            }
        }
        else
        {
            ShowHideToggle.Text = ">";
            while(Width > 24)
            {
                Width--;
                Application.DoEvents();
            }
        }
    }

创建一个Timer

Timer t = new Timer();
t.Interval = 14;
t.Tick += delegate
{
    if (ShowHideToggle.Checked)
    {
        if (this.Width > 30) // Set Form.MinimumSize to this otherwise the Timer will keep going, so it will permanently try to decrease the size.
            this.Width -= 10;
        else
            t.Stop();
    }
    else
    {
        if (this.Width < 300)
            this.Width += 10;
        else
            t.Stop();
    }
};

并将您的代码更改为:

private void ShowHideToggle_CheckStateChanged(object sender, EventArgs e)
{
    t.Start();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM