我的目标是让表单在打开时执行缓动动画。我希望我的Windows Forms Application
从屏幕的右下角滑入,并使用平滑的缓出动画停在任务栏的顶部。我更喜欢Robert Penner's equations的指数缓和公式。
我尝试将一些these公式移植到我的.Net应用程序中,但到目前为止还没有成功。我的宽松要么做任何事情(保持不变),停止在远离我选择的完全随机数字,或继续越来越快地进入无限。
这是我到目前为止的代码:
Public Class Form1
Dim t As Double = 1
Dim b As Double = 0
Dim c As Double = 0
Dim d As Double = 1000
Dim y_pos As Double = 0
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 1
Timer1.Enabled = True
End Sub
Public Sub easing_loop()
t = t / (d / 2)
If t < 1 Then
t = t + 1
y_pos = c / 2 * Math.Pow(2, 10 * (t - 1)) + b
Else
t = t - 1
y_pos = c / 2 * (-Math.Pow(2, -10 * t) + 2) + b
End If
End Sub
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
easing_loop()
Label1.Text = y_pos
End Sub
End Class
在这段代码中,什么都没发生。我的y_pos
变量冻结为0。
y_pos
是我将用于向程序提供它应该处于的Y坐标的变量。我将处理代码以实际将表单放在应该稍后的位置。现在:我使用一个变量,只是将其打印到标签上以便进行调试。