使用LayOutTransform的写法
<!‐‐窗口资源‐‐>
<Window.Resources>
<!‐‐按钮样式‐‐>
<Style TargetType="{x:Type Button}">
<Setter Property="Width" Value="100"/>
<Setter Property="Height" Value="60"/>
<Setter Property="Margin" Value="10"/>
<Setter Property="FontSize" Value="20"/>
<!‐‐对象中心点用来定义所有RenderTransform变换中相对位置的的参考点,默认为图形的左上即(0,0),该属性值为相对值,
介于 0 和 1 之间的值被解释为每对 x,y 轴中的当前元素的范围的因素‐‐>
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
<!‐‐LayoutTransform属性以相同的方式变换元素‐‐>
<Setter Property="LayoutTransform">
<Setter.Value>
<!‐‐RotateTransform:能够让某对象产生旋转变化,根据中心点进行顺时针旋转或逆时针旋转。‐‐>
<RotateTransform/>
</Setter.Value>
</Setter>
<!‐‐样式关联触发器‐‐>
<Style.Triggers>
效果图:
<!‐‐MouseLeave鼠标进入事件‐‐>
<EventTrigger RoutedEvent="Button.MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard>
<!‐‐RepeatBehavior:使用RepeataBehavior属性可以控制如何重复运行动画,Forever设置为永久重复‐‐>
<Storyboard RepeatBehavior="Forever" Storyboard.TargetProperty
<DoubleAnimation From="0" To="360" Duration="0:0:2"
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<!‐‐MouseLeave鼠标离开事件‐‐>
<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>
<!‐‐页面布局:栈式面板‐‐>
<StackPanel>
<Button Content="Test1"/>
<Button Content="Tes2"/>
<Button Content="Test3"/>
<Button Content="Test4"/>
</StackPanel>
效果图: