标签 标签 标签
- 一句话的事儿:
效果介绍
- 鼠标放到按钮上,则字体会变大
- 
逻辑介绍
- 这里的逻辑与给按钮变色是一个道理,接下来介绍旋转的逻辑 
- 首先旋转的对象是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 许可协议。转载请注明出处!
 
                         
                                

