作者:郑凯丰
关键技术和开发工具:VS、XAML、WPF
编写日期:2019年5月26日
代码部分:
1.首先也是先设置好四个button按钮
2.然后我们再利用Style来给这些按钮设置LayOutTransform事件
<Window.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Height" Value="60"/>
<Setter Property="Width" Value="100"/>
<Setter Property="Margin" Value="10"/>
<Setter Property="FontSize" Value="20"/>
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
<Setter Property="LayoutTransform"> <!--变形属性-->
<Setter.Value>
<RotateTransform/> <!--让物体产生顺时针或逆时针旋转-->
</Setter.Value>
</Setter>
<!--样式关联触发器-->
<Style.Triggers>
<!--鼠标移入事件-->
<EventTrigger RoutedEvent="Button.MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard>
<!--RepeatBehavior:使用RepeataBehavior属性可以控制如何重复运行动画,Forever设置为永久重复-->
<Storyboard RepeatBehavior="Forever" Storyboard.TargetProperty="LayoutTransform.Angle">
<DoubleAnimation From="0" To="2160" Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<!--鼠标离开事件-->
<EventTrigger RoutedEvent="Button.MouseLeave">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard Storyboard.TargetProperty="LayoutTransform.Angle">
<DoubleAnimation To="0" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
LayOutTransform事件与RenderTransform事件差别就在于RenderTransform事件使用时不会改变页面的构造
而LayOutTransform事件在使用时会改变页面的构造;
演示图:
LayOutTransform事件
RenderTransform事件