我使用一些 WPF 动画来垂直移动 UserControl。
这是代码
public void RestartAnimation(double contentControlHeight, double thisHeight)
{
if (cp != null && IsLoaded)
da.From = contentControlHeight;
da.To = -thisHeight;
da.RepeatBehavior = RepeatBehavior.Forever;
da.Duration = new Duration(TimeSpan.FromSeconds(this.Duration));
sb.Children.Clear();
sb.Children.Add(da);
Storyboard.SetTargetProperty(da, new PropertyPath("(Canvas.Top)"));
Storyboard.SetTarget(da, cp);
sb.Begin();
}
}
它工作得很好,但我发现如果高度更大,那么运动就会更快。
所以我需要意识到两件事:
一些速度范围值,即 1-100(非常慢 - 超快),在内部我需要一些公式/系数来做到这一点。
我用静态速度和不同的高度做了一些实验,得到了一些桌子。
请帮我弄清楚我必须做哪些计算才能设置速度范围(1-100),它应该可以正常工作,无论 StackPanel
高度。
谢谢你们!