如何改善这种转变?

时间:2015-10-19 01:59:44

标签: 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 || calibrate_button.Top <= 800)
        {
            sleep_button.Top += speed_increase;
            calibrate_button.Top += speed_increase;

        }
    }

我的定时器间隔也设置为1ms,只是因为我知道它变得更大的间隔。我一直在寻找一个按钮转换教程,但没有找到。如果这不可能,有人可以给我一个按钮淡出的教程吗?谢谢大家

2 个答案:

答案 0 :(得分:0)

完全隐藏它怎么样?

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

答案 1 :(得分:0)

您的时间选择已关闭。 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像素,则需要在每次迭代时将2添加到每个按钮的Y位置。

我希望这是有道理的。