C# 如何改进此过渡的外观?

C# 如何改进此过渡的外观?,c#,visual-studio,transitions,C#,Visual Studio,Transitions,我试图在点击一个按钮后,将两个按钮向下转换并移出屏幕。我让它工作,但它很颠簸。如何使此过渡更流畅? -我正在使用Microsoft Visual Studio 2015 -我使用的语言是c# 这是我的转换代码: private void timer1_Tick(object sender, EventArgs e) { int speed_increase = 100; if(sleep_button.Top <= 800 || calibrat

我试图在点击一个按钮后,将两个按钮向下转换并移出屏幕。我让它工作,但它很颠簸。如何使此过渡更流畅?
-我正在使用Microsoft Visual Studio 2015 -我使用的语言是c# 这是我的转换代码:

private void timer1_Tick(object sender, EventArgs e)
    {
        int speed_increase = 100;


        if(sleep_button.Top <= 800 || calibrate_button.Top <= 800)
        {
            sleep_button.Top += speed_increase;
            calibrate_button.Top += speed_increase;

        }
    }
private void timer1\u勾选(对象发送方,事件参数e)
{
int速度_增加=100;

如果(sleep_button.Top把它全部隐藏起来怎么样

private void timer1_Tick(object sender, EventArgs e)
    {
        sleep_button.Visible = false;
        calibrate_button.Visible = false;
    }

您的计时选择已关闭。1ms太精细。请尝试20ms左右的值,这将导致您的代码每秒运行50次,这与50hz左右的常见刷新率非常接近

按钮需要滚动多远?需要多长时间

假设X是滚动的距离,Y是以秒为单位的时间。迭代次数为Y*50(每秒50次),每一步的距离为X/Y

X=200像素。
Y=2秒

每一步的距离为:
X/(Y*50)
200/(2*50)
200/100
==2

如果要在2秒钟内滚动200像素,则需要在每次迭代中向每个按钮的Y位置添加2


我希望这是有意义的。

这是什么平台?WinForms?WPF?Microsoft Visual Studio这不是平台。项目类型是什么?我的错,Windows窗体应用程序需要在1秒内转换700像素。所以700/(1*50)==14,我将计时器更改为20ms,将速度变量更改为14,但动画耗时超过两秒,仍然非常不稳定。有什么建议吗?在过渡期间,您的程序是否正在执行其他重要工作?没有,我已切换到WPF。应能更好地处理过渡,并且它可以在Windows上运行