标签 标签 标签
- 一句话的事儿:
效果介绍
- 鼠标放到按钮上,则字体会变大
-
逻辑介绍
这里的逻辑与给按钮变色是一个道理,接下来介绍旋转的逻辑
- 首先旋转的对象是Grid,而非按钮
- 这里需要引入RenderTransform
- 设置旋转的中心点以及旋转角度,旋转时间
源代码
<Window x:Class="WPFDemo.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WPFDemo"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid><Button Width="150" Height="50" Click="Button_Click"><Button.Template><ControlTemplate><Grid RenderTransformOrigin="0.5,0.5"><Grid.RenderTransform><RotateTransform Angle="0" x:Name="gridRotate"></RotateTransform></Grid.RenderTransform><TextBlock x:Name="txtBlock" Text="按钮" TextAlignment="Center" VerticalAlignment="Center" FontSize="25" Foreground="Blue"></TextBlock><!--<Rectangle x:Name="rec" Width="100" Height="50" Fill="Violet" RadiusX="25" RadiusY="25" Opacity="0.5"></Rectangle>--><Rectangle x:Name="rec" Width="100" Height="50" RadiusX="25" RadiusY="25" Opacity="0.5"><!--将填充部分单独写,为了后面单独调用做准备--><Rectangle.Fill><!--采用刷子来填充--><SolidColorBrush x:Name="recBrush" Color="Blue"></SolidColorBrush></Rectangle.Fill><Rectangle.Triggers><EventTrigger RoutedEvent="MouseEnter"><EventTrigger.Actions><BeginStoryboard><Storyboard><DoubleAnimation Storyboard.TargetName="txtBlock" Storyboard.TargetProperty="FontSize" To="30" Duration="0:0:0.5"></DoubleAnimation><ColorAnimation Storyboard.TargetName="recBrush" Storyboard.TargetProperty="Color" To="Gray" Duration="0:0:1"></ColorAnimation></Storyboard></BeginStoryboard></EventTrigger.Actions></EventTrigger><EventTrigger RoutedEvent="MouseLeave"><EventTrigger.Actions><BeginStoryboard><Storyboard><DoubleAnimation Storyboard.TargetName="txtBlock" Storyboard.TargetProperty="FontSize" To="25" Duration="0:0:0.5"></DoubleAnimation><DoubleAnimation Storyboard.TargetName="txtBlock" Storyboard.TargetProperty="FontSize" To="25" Duration="0:0:0.5"></DoubleAnimation><ColorAnimation Storyboard.TargetName="recBrush" Storyboard.TargetProperty="Color" To="Blue" Duration="0:0:1"></ColorAnimation></Storyboard></BeginStoryboard></EventTrigger.Actions></EventTrigger></Rectangle.Triggers></Rectangle><Grid.Triggers><EventTrigger RoutedEvent="Loaded"><EventTrigger.Actions><BeginStoryboard><Storyboard><DoubleAnimation Storyboard.TargetName="gridRotate" Storyboard.TargetProperty="Angle" To="360" Duration="0:0:2"></DoubleAnimation></Storyboard></BeginStoryboard></EventTrigger.Actions></EventTrigger></Grid.Triggers></Grid></ControlTemplate></Button.Template></Button></Grid></Window>
- 本文作者:GeekPower - Felix Sun
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
