0

我使用一些 WPF 双动画来移动StackPanel.

<Canvas  ClipToBounds="True" Name="canMain" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
        <StackPanel  Name="tbmarquee" HorizontalAlignment="Stretch" ></StackPanel>
</Canvas>

每次我使用相同的时间 30 秒,我都会UIElemntsStackPanel. 所以宽度StackPanel是不同的,它会改变动画速度,就像如果我有很多项目,StackPanel那么动画非常慢,如果我有 1 个项目,它会非常快。

任何线索我必须使用哪个系数来获得稳定的动画速度

谢谢!

附言

似乎这段代码或多或少地给出了正确的系数

var coeff = 0;

 if (test.Count >= 1 && test.Count <= 10)
        coeff = 60;
 else if (test.Count > 10 && test.Count <= 20)
        coeff = 120;
 else if (test.Count > 20 && test.Count <= 30)
       coeff = 240;
 else if (test.Count > 30 && test.Count <= 40)
        coeff = 300;
else if (test.Count > 40 && test.Count <= 50)
       coeff = 350;
else if (test.Count > 50 && test.Count <= 60)
        coeff = 400;
else if (test.Count > 60 && test.Count <= 70)
         coeff = 450;
 else if (test.Count > 70 && test.Count <= 80)
     coeff = 500;
else if (test.Count > 80 && test.Count <= 90)
    coeff = 530;
else if (test.Count > 90 && test.Count <= 100)
    coeff = 560;
and etc...

任何线索如何将其转换为某种表达式?

4

2 回答 2

1

具有相同动画的动画视觉效果较少Duration会导致动画在屏幕上显示得更快。相反,您应该改变“持续时间”,同时考虑到您将制作动画的元素的数量。

于 2012-11-14T16:45:36.147 回答
0

嗯......如果有人需要答案,那么它就在这里。

我找到了公式和系数。

var coeff = StackPanel.Children.Count * 3;

所以我用它来以相同的速度为任意数量的项目制作动画。

于 2012-11-14T18:27:55.643 回答