Mega Code Archive

 
Categories / Silverlight / Animations
 

Control the animation from code

<UserControl x:Class='SilverlightApplication3.MainPage'     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'      mc:Ignorable='d'      d:DesignWidth='640'      d:DesignHeight='480'>   <UserControl.Resources>     <Storyboard x:Name="fadeStoryboard">       <DoubleAnimation x:Name="fadeAnimation"                 Storyboard.TargetName="imgDay"                 Storyboard.TargetProperty="Opacity"                 From="1" To="0" Duration="0:0:10" ></DoubleAnimation>     </Storyboard>   </UserControl.Resources>   <Grid x:Name="LayoutRoot" Background="White" Margin="5">       <Grid.RowDefinitions>         <RowDefinition></RowDefinition>                 <RowDefinition Height="Auto"></RowDefinition>         <RowDefinition Height="Auto"></RowDefinition>               </Grid.RowDefinitions>       <Grid>         <Image Source="c:/image.jpg"></Image>         <Image Source="c:/image.jpg" Name="imgDay"></Image>       </Grid>       <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" Margin="5">       <Button x:Name="cmdStart" Content="Start" Click="cmdStart_Click" Margin="3" Padding="1"></Button>         <Button x:Name="cmdPause" Content="Pause" Click="cmdPause_Click" Margin="3" Padding="1"></Button>         <Button x:Name="cmdResume" Content="Resume" Click="cmdResume_Click" Margin="3" Padding="1"></Button>         <Button x:Name="cmdStop" Content="Stop" Click="cmdStop_Click" Margin="3" Padding="1"></Button>         <Button x:Name="cmdMiddle" Content="Move To Middle" Click="cmdMiddle_Click" Margin="3" Padding="1"></Button>       </StackPanel>              <Grid Grid.Row="2" Margin="5">         <Grid.ColumnDefinitions>           <ColumnDefinition Width="Auto"></ColumnDefinition>           <ColumnDefinition></ColumnDefinition>           <ColumnDefinition Width="Auto"></ColumnDefinition>         </Grid.ColumnDefinitions>         <TextBlock>Speed:</TextBlock>         <Slider Grid.Column="1" x:Name="sldSpeed"               Minimum="0" Maximum="3" Value="1" ValueChanged="sldSpeed_ValueChanged"></Slider>               <TextBlock Grid.Column="2" x:Name="lblSpeed">1.0</TextBlock>       </Grid>           </Grid>    </UserControl> //File: Page.xaml.cs using System; using System.Collections.Generic; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; namespace SilverlightApplication3 {     public partial class MainPage : UserControl     {         public MainPage()         {             InitializeComponent();         }         private void cmdStart_Click(object sender, RoutedEventArgs e)         {             fadeStoryboard.Begin();         }         private void cmdPause_Click(object sender, RoutedEventArgs e)         {             fadeStoryboard.Pause();         }         private void cmdResume_Click(object sender, RoutedEventArgs e)         {             fadeStoryboard.Resume();         }         private void cmdStop_Click(object sender, RoutedEventArgs e)         {             fadeStoryboard.Stop();                     }         private void cmdMiddle_Click(object sender, RoutedEventArgs e)         {             fadeStoryboard.Begin();             fadeStoryboard.Seek(TimeSpan.FromSeconds(fadeAnimation.Duration.TimeSpan.TotalSeconds/2));         }         private void sldSpeed_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)         {             if (sldSpeed == null) return;             fadeStoryboard.SpeedRatio = sldSpeed.Value;             lblSpeed.Text = sldSpeed.Value.ToString("0.0");         }     } }