如何在XAML和C#中为WPF按钮的旋转设置动画?

时间:2015-06-12 16:13:08

标签: c# wpf animation rotation

这是我的XAML代码,按钮位于Stackpanel中。 这个doestn与旋转工作!但是例如使用Storyboard.TargetProperty="Opacity"它可以工作。

<Button Content="Button" x:Name="RotateBtn"  Style="{StaticResource rainbow}" >
    <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation
                        Storyboard.TargetProperty="(Button.RenderTransform).(RotateTransform.Angle)"
                        From="1" To="36" Duration="0:0:3" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Button.Triggers>
</Button>

其他问题:如何使用C#获得相同的动画?

1 个答案:

答案 0 :(得分:1)

默认UIElement.RenderTransformTransform.Identity,因此您的动画无法找到RotateTransform。您需要在按钮上设置RenderTranformRotateTransform

    <Button>
        <Button.RenderTransform>
            <RotateTransform/>
        </Button.RenderTransform>
  ...
      </Button>

快速搜索将为您提供如何在代码中创建故事板的示例。您只需在按钮上创建EventTrigger并将故事板添加到其中。