Demo
设置一个Button点击旋转的效果
1.首先添加一个button代码如下:
<Grid>
<Button Width="80" Height="60" Content="旋转2" Name="button1" Click="Button1_Click" Style="{x:Null}" RenderTransformOrigin="0.5,0.5" Margin="305,130,208.6,80.4"/>
</Grid>
2.写Click方法,实现效果:点击后旋转60度,再次点击转回60度
private void Button1_Click(object sender, RoutedEventArgs e)
{
if (flag)
{
RotateTransform rtf = new RotateTransform();
button1.RenderTransform = rtf;
//DoubleAnimation dbAscending = new DoubleAnimation(0, 360, new Duration(TimeSpan.FromSeconds(1)));
DoubleAnimation ani = new DoubleAnimation();
ani.From = 0;
ani.To = 60;
ani.Duration = TimeSpan.FromSeconds(1);
Storyboard storyboard = new Storyboard();
//ani.RepeatBehavior = RepeatBehavior.Forever;
storyboard.Children.Add(ani);
Storyboard.SetTarget(ani, button1);
Storyboard.SetTargetProperty(ani, new PropertyPath("RenderTransform.Angle"));
storyboard.Begin();
flag = false;
}
else {
RotateTransform rtf = new RotateTransform();
button1.RenderTransform = rtf;
//DoubleAnimation dbAscending = new DoubleAnimation(0, 360, new Duration(TimeSpan.FromSeconds(1)));
DoubleAnimation ani = new DoubleAnimation();
ani.From = 60;
ani.To = 0;
ani.Duration = TimeSpan.FromSeconds(1);
Storyboard storyboard = new Storyboard();
//ani.RepeatBehavior = RepeatBehavior.Forever;
storyboard.Children.Add(ani);
Storyboard.SetTarget(ani, button1);
Storyboard.SetTargetProperty(ani, new PropertyPath("RenderTransform.Angle"));
storyboard.Begin();
flag = true;
}
}