TranslateTransform and DoubleAnimation

image_pdfimage_print




//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Media.Animation;

namespace _360Timer
{

public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();

this.Show();

for (int i = 0; i < 24; ++i) { Ellipse e = new Ellipse(); e.Stroke = new SolidColorBrush(Color.FromArgb(5, 2, 200, 100)); e.StrokeThickness = 20; e.Width = 10.0; e.Height = 20.0; this.MainCanvas.Children.Add(e); e.SetValue(Canvas.LeftProperty, 300); e.SetValue(Canvas.TopProperty, 400); double duration = 6.0 ; double delay = 1.0 ; TranslateTransform offsetTransform = new TranslateTransform(); DoubleAnimation offsetXAnimation = new DoubleAnimation(0.0, -256.0, new Duration(TimeSpan.FromSeconds(duration))); offsetXAnimation.RepeatBehavior = RepeatBehavior.Forever; offsetXAnimation.BeginTime = TimeSpan.FromSeconds(delay); offsetTransform.BeginAnimation(TranslateTransform.XProperty, offsetXAnimation); offsetTransform.BeginAnimation(TranslateTransform.YProperty, offsetXAnimation); e.RenderTransform = offsetTransform; } } } } [/csharp]