代码背后的Animate属性

时间:2014-07-07 19:08:29

标签: c# wpf xaml animation

让我说我有财产

public double MyProp{get;set;}

如何在1秒内将该属性设置为0到100?我尝试过这样的事情:

DoubleAnimation animation = new DoubleAnimation(0, 100, TimeSpan.FromSeconds(1));
animation.BeginAnimation(MyProp, ???);

修改

根据我的观点,我有:

<Image Name="ImgCompassPointer" Source="somePath" RenderTransformOrigin=".5,.5">
        <Image.RenderTransform>
            <TransformGroup>                    
                <RotateTransform Angle="{Binding MyProp}"/>
            </TransformGroup>
        </Image.RenderTransform>
</Image>

当我为角度设置一个新值时,我想为它设置动画。我怎么能在代码背后做到这一点?

注意

如果我在哪里制作高度的动画,那么我就可以做类似的事情:

 DoubleAnimation animation = new DoubleAnimation(0, 100, TimeSpan.FromSeconds(1));
 ImgCompassPointer.ImgCompassPointer.BeginAnimation(Image.HeightProperty, animation);

但我无法想出一种为旋转/角度属性设置动画的方法

1 个答案:

答案 0 :(得分:1)

您可以使用

rotation/angle设置动画
var doubleAnimation = new DoubleAnimation(360, 0, new Duration(TimeSpan.FromSeconds(1)));
var rotateTransform = new RotateTransform();
image.RenderTransform = rotateTransform;
image.RenderTransformOrigin = new Point(0.5, 0.5);
doubleAnimation.RepeatBehavior = RepeatBehavior.Forever;
rotateTransform.BeginAnimation(RotateTransform.AngleProperty, doubleAnimation);