0

这是我在 c# microsoft visual studio windows phone 中的代码。我的应用程序都是关于“旋转瓶子”的,不幸的是,它旋转得很快,但在接近停止时从不减速,它只是停止然后就是这样。任何人都可以请。帮我?如何让这个应用程序有一个瓶子从快停到慢停的逼真运动?

Random random = new Random(); //Declare random
int randomNumber = random.Next(7201, 7560);
Duration Time_duration = new Duration(TimeSpan.FromSeconds(2)); 
Storyboard MyStory = new Storyboard();
MyStory.Duration = Time_duration;
DoubleAnimation My_Double = new DoubleAnimation();
My_Double.Duration = Time_duration;
MyStory.Children.Add(My_Double);
RotateTransform MyTransform = new RotateTransform();
Storyboard.SetTarget(My_Double, MyTransform);
Storyboard.SetTargetProperty(My_Double, new PropertyPath("Angle"));
My_Double.To = randomNumber;
image1.RenderTransform = MyTransform;
image1.RenderTransformOrigin = new Point(0.5, 0.5);
MyStory.Begin();
4

1 回答 1

0

您想更改动画的缓动功能。这是一个例子:

    <Storyboard x:Name="SpinBoxStory">
        <DoubleAnimation Duration="0:0:2" To="1375.909" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="rectangle" d:IsOptimized="True">
            <DoubleAnimation.EasingFunction>
                <QuarticEase EasingMode="EaseOut"/>
            </DoubleAnimation.EasingFunction>
        </DoubleAnimation>
    </Storyboard>

这里描述了缓动函数。 我选择了一个具有类似特性的瓶子,它会因地面摩擦而旋转和减速。

在您的示例中,您只想创建一个新的 QuarticEase 并将其分配给您的 My_Double 动画。

于 2012-07-21T14:51:36.320 回答