图像旋转不起作用

时间:2017-10-23 15:50:59

标签: c# wpf animation

我有一张照片,我正试图移动它并旋转它。使用此代码移动可以正常工作

<Storyboard x:Key="sbShowFormPlayPauseArrow" >
            <ThicknessAnimation 
                Storyboard.TargetProperty="Margin" 
                From="280,0,0,-420" To="280,0,0,400" 
                DecelerationRatio=".2" 
                Duration="0:0:1.35" />
        </Storyboard>

轮换确实喜欢这个

 <Storyboard x:Key="sbShowFormPlayPauseArrowRotate" >
            <DoubleAnimation
                Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" 
                From="0" To="180" 
                DecelerationRatio=".2" 
                Duration="0:0:1.35" />
        </Storyboard>

动画调用本身

private void RotateImage(string Storyboard, System.Windows.Controls.Image image)
        {
            Storyboard sb = Resources[Storyboard] as Storyboard;
            sb.Begin(image);
        }
RotateImage("sbShowFormPlayPauseArrow", arrowUp);
RotateImage("sbShowFormPlayPauseArrowRotate", arrowUp);

项目启动并且不会产生任何错误,只移动图像,但没有旋转 我的错是什么?不能理解( 感谢。

1 个答案:

答案 0 :(得分:2)

您的图片(您未提供的xaml)很可能没​​有将RenderTransform设置为RotateTransform,您需要这样做:

<Image Source="...">
    <Image.RenderTransform>
        <RotateTransform Angle="0" />
    </Image.RenderTransform>
</Image>

原因是你从动画中引用了RotateTransform

Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)"