Path animation by code, duration, RepeatBehavior

image_pdfimage_print


   
  

<Window x:Class="WpfApplication1.PathAnimationExample"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Path Animation" Height="500" Width="518">
    <Canvas Margin="5">
        <Path Stroke="LightBlue">
            <Path.Data>
                <PathGeometry x:Name="path1"
          Figures="M10,10 C75,20 300,20 200,120 220,220 300,220 350, 400 325,20 220,20 200,120 175,220 75,200 50,120" />
            </Path.Data>
        </Path>
        <Path Stroke="DarkGoldenrod">
            <Path.Fill>
                <RadialGradientBrush>
                    <GradientStop Color="Gold" Offset="0" />
                    <GradientStop Color="DarkGoldenrod" Offset="1" />
                </RadialGradientBrush>
            </Path.Fill>
            <Path.Data>
                <EllipseGeometry x:Name="circle1" Center="50,120" RadiusX="10" RadiusY="10" />
            </Path.Data>
        </Path>

    </Canvas>
</Window>
//File:Window.xaml.cs

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace WpfApplication1
{
    public partial class PathAnimationExample : Window
    {
        public PathAnimationExample()
        {
            InitializeComponent();
            path1.Freeze(); // For performance benefits. 
            PointAnimationUsingPath pa = new PointAnimationUsingPath();
            pa.PathGeometry = path1;
            pa.Duration = TimeSpan.FromSeconds(5);
            pa.RepeatBehavior = RepeatBehavior.Forever;
            circle1.BeginAnimation(EllipseGeometry.CenterProperty, pa);


        }
    }
}