wpf BusyIndicator
View Code
public class Indicator : UserControl { public Indicator() { this.InitializeComponent(); } private void InitializeComponent() { Grid g = new Grid(); this.Content = g; List<Path> pathlist = new List<Path>(); for (int i = 0; i < 12; i++) { Path p = new Path(); p.Data = Geometry.Parse("M 0,0 L -10,0 L -10,-60 L 0,-70 L 10,-60 L 10,0 Z"); p.Stroke = new SolidColorBrush(Colors.DarkGreen); p.Fill = new SolidColorBrush(Colors.LawnGreen); p.Opacity = 0.2; TransformGroup tg= new TransformGroup(); p.RenderTransform=tg; TranslateTransform tt = new TranslateTransform(); tt.Y = -50; RotateTransform rt = new RotateTransform(); rt.Angle = i * 30; tg.Children.Add(tt); tg.Children.Add(rt); DoubleAnimation da = new DoubleAnimation(); da.From = 1.0; da.To = 0.2; da.Duration = new Duration(TimeSpan.FromSeconds(1)); da.BeginTime = TimeSpan.FromMilliseconds(i * 1000 / 12); da.RepeatBehavior = RepeatBehavior.Forever; g.Children.Add(p); p.BeginAnimation(Path.OpacityProperty, da); } } }