Mega Code Archive

 
Categories / C# / WPF
 

Rotate Button Animation With Layout

<Window x:Class="Animation.RotateButtonWithLayout"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     Title="RotateButtonWithLayout" Height="300" Width="300">   <Window.Resources>     <Style TargetType="{x:Type Button}">       <Setter Property="HorizontalAlignment" Value="Center"></Setter>       <Setter Property="RenderTransformOrigin" Value="0.5,0.5"></Setter>       <Setter Property="LayoutTransform">         <Setter.Value>           <RotateTransform></RotateTransform>         </Setter.Value>       </Setter>       <Style.Triggers>         <EventTrigger RoutedEvent="Button.MouseEnter">           <EventTrigger.Actions>             <BeginStoryboard Name="rotateStoryboardBegin">               <Storyboard>                 <DoubleAnimation Storyboard.TargetProperty="LayoutTransform.Angle"                  To="360" Duration="0:0:0.8" RepeatBehavior="Forever"></DoubleAnimation>               </Storyboard>             </BeginStoryboard>           </EventTrigger.Actions>         </EventTrigger>         <EventTrigger RoutedEvent="Button.MouseLeave">           <EventTrigger.Actions>            <!-- <RemoveStoryboard BeginStoryboardName="rotateStoryboardBegin"></RemoveStoryboard> -->             <BeginStoryboard>               <Storyboard>                 <DoubleAnimation Storyboard.TargetProperty="LayoutTransform.Angle"                    Duration="0:0:0.2"></DoubleAnimation>               </Storyboard>             </BeginStoryboard>           </EventTrigger.Actions>         </EventTrigger>       </Style.Triggers>             </Style>               </Window.Resources>   <StackPanel Margin="5" Button.Click="cmd_Clicked">     <Button>One</Button>     <Button>Two</Button>     <Button>Three</Button>     <Button>Four</Button>   </StackPanel> </Window> //File:Window.xaml.cs using System; using System.Collections.Generic; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; namespace Animation {     public partial class RotateButtonWithLayout : System.Windows.Window     {         public RotateButtonWithLayout()         {             InitializeComponent();         }         private void cmd_Clicked(object sender, RoutedEventArgs e)         {             Console.WriteLine( ((Button)e.OriginalSource).Content );         }     } }