いくつかの 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();
}
}
正常に動作しますが、高さが大きいほど動きが速いことがわかりました。
だから私は2つのことを実現する必要があります:
いくつかの速度範囲の値、つまり 1 ~ 100 (非常に遅い - 超高速) があり、内部的にはそれを行うための数式/係数が必要です。
静的速度とさまざまな高さでいくつかの実験を行い、いくつかのテーブルを取得しました。
速度範囲(1〜100)を設定するためにどの計算を行う必要があるかを 理解するのを手伝ってください。StackPanel
高さに関係なく正常に動作するはずです。
君たちありがとう!