Show a Continuous Animation During an Asynchronous Process : Animation « Windows Presentation Foundation « C# / CSharp Tutorial

Home
C# / CSharp Tutorial
1.Language Basics
2.Data Type
3.Operator
4.Statement
5.String
6.struct
7.Class
8.Operator Overload
9.delegate
10.Attribute
11.Data Structure
12.Assembly
13.Date Time
14.Development
15.File Directory Stream
16.Preprocessing Directives
17.Regular Expression
18.Generic
19.Reflection
20.Thread
21.I18N Internationalization
22.LINQ
23.GUI Windows Forms
24.Windows Presentation Foundation
25.Windows Communication Foundation
26.Workflow
27.2D
28.Design Patterns
29.Windows
30.XML
31.XML LINQ
32.ADO.Net
33.Network
34.Directory Services
35.Security
36.unsafe
C# / C Sharp
C# / C Sharp by API
C# / CSharp Open Source
C# / CSharp Tutorial » Windows Presentation Foundation » Animation 
24.108.22.Show a Continuous Animation During an Asynchronous Process
<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF" Height="220" Width="180">
    <Window.Resources>
        <Storyboard  x:Key="PulseStoryboard" AutoReverse="True" >
            <ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ellipse" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[0].(GradientStop.Color)">
                <SplineColorKeyFrame KeyTime="00:00:00.5000000" Value="Lime"/>
            </ColorAnimationUsingKeyFrames>
            <ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ellipse" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
                <SplineColorKeyFrame KeyTime="00:00:00.5000000" Value="Green"/>
            </ColorAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>

    <Grid x:Name="LayoutRoot" >
        
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="60" />
        </Grid.RowDefinitions>
      
        <Ellipse Width="100" Height="100" Margin="10" Stroke="{x:Null}" x:Name="ellipse">
            <Ellipse.Fill>
                <RadialGradientBrush GradientOrigin="0.25,0.25">
                    <GradientStop Offset="0" Color="Red"/>
                    <GradientStop Offset="1" Color="Blue"/>
                </RadialGradientBrush>
            </Ellipse.Fill>
        </Ellipse>
       
        <Button Margin="10" Content="Start" Grid.Row="1" x:Name="button" Click="button_Click"/>
    </Grid>
</Window>
//File:Window.xaml.cs

using System.Windows;

using System.Threading;
using System.ComponentModel;
using System.Windows.Media.Animation;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        private Storyboard pulseStoryboard;
        private BackgroundWorker worker;

        public Window1()
        {
            InitializeComponent();

            pulseStoryboard = (Storyboardthis.Resources["PulseStoryboard"];
            pulseStoryboard.RepeatBehavior = RepeatBehavior.Forever;
            worker = new BackgroundWorker();

            worker.DoWork += new DoWorkEventHandler(worker_DoWork);
            worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
        }

        private void button_Click(object sender, RoutedEventArgs e)
        {
            pulseStoryboard.Begin(this, true);
            worker.RunWorkerAsync();
            button.IsEnabled = false;
        }

        private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            button.IsEnabled = true;
            pulseStoryboard.Stop(this);
        }

        private void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            for(int i = 1; i <= 50; i++)
            {
                Thread.Sleep(100);
            }
        }
    }
}
WPF Show A Continuous Animation During An Asynchronous Process
24.108.Animation
24.108.1.Two AnimationsTwo Animations
24.108.2.Animate RenderTransform AngleAnimate RenderTransform Angle
24.108.3.Animation In StyleAnimation In Style
24.108.4.Animation without acceleration or decelerationAnimation without acceleration or deceleration
24.108.5.XAML Only AnimationXAML Only Animation
24.108.6.Control Animations Through TriggersControl Animations Through Triggers
24.108.7.Four Sided BounceFour Sided Bounce
24.108.8.Matrix Animated ButtonMatrix Animated Button
24.108.9.KeySpline AnimationKeySpline Animation
24.108.10.Repetition countRepetition count
24.108.11.Repetition durationRepetition duration
24.108.12.Rotate Button AnimationRotate Button Animation
24.108.13.Rotate Button Animation With LayoutRotate Button Animation With Layout
24.108.14.A simple, finite animationA simple, finite animation
24.108.15.Animation with codeAnimation with code
24.108.16.Animation In CodeAnimation In Code
24.108.17.A Simple Animation in CodeA Simple Animation in Code
24.108.18.Remove Animations with AnimationClockRemove Animations with AnimationClock
24.108.19.Remove AnimationsRemove Animations
24.108.20.Control the Progress of an AnimationControl the Progress of an Animation
24.108.21.Timer triggered AnimationTimer triggered Animation
24.108.22.Show a Continuous Animation During an Asynchronous ProcessShow a Continuous Animation During an Asynchronous Process
24.108.23.Receive Notification When an Animation CompletesReceive Notification When an Animation Completes
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.