Stop, resume animation with Storyboard : Storyboard « Windows Presentation Foundation « C# / C Sharp






Stop, resume animation with Storyboard

Stop, resume animation with Storyboard
 

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="WpfApplication1.Window1"
    Title="Color Spinner" Height="370" Width="270" >
    <Window.Resources>
        <Storyboard x:Key="Spin">
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ellipse1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" RepeatBehavior="Forever">
                <SplineDoubleKeyFrame KeyTime="00:00:10" Value="360"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>
    <Window.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard Storyboard="{StaticResource Spin}" x:Name="Spin_BeginStoryboard"/>
        </EventTrigger>
        <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="goButton">
            <ResumeStoryboard BeginStoryboardName="Spin_BeginStoryboard"/>
        </EventTrigger>
        <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="stopButton">
            <PauseStoryboard BeginStoryboardName="Spin_BeginStoryboard"/>
        </EventTrigger>
    </Window.Triggers>
    <Window.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FFFFFFFF" Offset="0"/>
            <GradientStop Color="#FFFFC45A" Offset="1"/>
        </LinearGradientBrush>
    </Window.Background>
    <Grid>
        <StackPanel>
            <Ellipse Margin="15,85,0,0" Name="ellipse1" Stroke="{x:Null}" Height="80" HorizontalAlignment="Left" VerticalAlignment="Top" Width="120" Fill="Red" Opacity="0.5" RenderTransformOrigin="0.92,0.5" >
                <Ellipse.BitmapEffect>
                    <BevelBitmapEffect/>
                </Ellipse.BitmapEffect>
                <Ellipse.RenderTransform>
                    <TransformGroup>
                        <RotateTransform Angle="0"/>
                    </TransformGroup>
                </Ellipse.RenderTransform>
            </Ellipse>
            <Button Name="goButton" Content="Go"/>
        <Button Name="stopButton" Content="Stop"/>
        <Button Name="toggleButton" Content="Toggle" Click="toggleButton_Click" />
       </StackPanel>

    </Grid>
</Window>


//File:Window.xaml.cs

using System;
using System.Collections.Generic;
using System.Linq;
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.Navigation;
using System.Windows.Shapes;
using System.Windows.Media.Animation;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void toggleButton_Click(object sender, RoutedEventArgs e)
        {
            Storyboard spinStoryboard = Resources["Spin"] as Storyboard;
            if (spinStoryboard != null)
            {
                if (spinStoryboard.GetIsPaused(this))
                {
                    spinStoryboard.Resume(this);
                }
                else
                {
                    spinStoryboard.Pause(this);
                }
            }
        }
    }
}

   
  








Related examples in the same category

1.EventTrigger RoutedEvent=Image.LoadedEventTrigger RoutedEvent=Image.Loaded
2.Controlling The StoryboardControlling The Storyboard
3.Trigger Animation by Mouse in out actionTrigger Animation by Mouse in out action
4.Remove Animations with StoryboardRemove Animations with Storyboard
5.Create an interactive animation using XAML and the StoryboardCreate an interactive animation using XAML and the Storyboard
6.Create animations using the Storyboard in codeCreate animations using the Storyboard in code
7.Get resource in code as StoryboardGet resource in code as Storyboard