2011-07-05 55 views
1

我必须实现一个道路交汇处简单程序。路口的图像被设置为WPF网格的背景属性,并且我在队列中有ArrayLists来表示每辆车,起源街道和目的地街道的颜色。
现在,我需要将汽车制成动画椭圆形,并且我需要每辆汽车在私密车离开屏幕后开始动作。
我正在使用下面的代码,但它只动画第一辆车。
解决方案是什么?因此使用wpf动画椭圆

private void button1_Click(object sender, RoutedEventArgs e) 
    { 

     for (int i = 0; i < queue.Count; i++) 
     { 

      ArrayList car = (ArrayList)queue[i]; 
      int id = Convert.ToInt32(car[0]); 
      int color = Convert.ToInt32(car[1]); 
      int from= Convert.ToInt32(car[2]); 
      int to = Convert.ToInt32(car[3]); 



         Ellipse myEllipse = new Ellipse(); 
         if (color == 0) 
         { 
          myEllipse.Stroke = System.Windows.Media.Brushes.Green; 
          myEllipse.Fill = System.Windows.Media.Brushes.Green; 
         } 
         else { 
          myEllipse.Stroke = System.Windows.Media.Brushes.Blue; 
          myEllipse.Fill = System.Windows.Media.Brushes.Blue; 
         } 
         myEllipse.HorizontalAlignment = HorizontalAlignment.Left; 
         myEllipse.VerticalAlignment = VerticalAlignment.Center; 
         myEllipse.Width = 45; 
         myEllipse.Height = 45; 
         myGrid.Children.Add(myEllipse); 

         DoubleAnimation da = new DoubleAnimation(); 
         da.From = from; 
         da.To = to; 
         da.Duration = new Duration(TimeSpan.FromSeconds(1)); 
         TranslateTransform tt = new TranslateTransform(); 
         myEllipse.RenderTransform = tt; 
         tt.BeginAnimation(TranslateTransform.XProperty, da); 
         } 
} 
+1

您使用的是.NET 3.0中引入的WPF,以及ArrayLists,它们自.NET 2.0推出以来已经过时了吗? –

回答

0

在WPF动画是以其他方式组织的。我建议你看看Storyboard。希望这会帮助你。

+0

我不是被迫使用WPF。有没有更简单的方法来做到这一点? – danrah

+0

downvote是无意的 - 只有在检查我的配置文件后才意识到它。我无法撤销它,因为它发生在几天前,所以给你的答案一个免费upvote来弥补。抱歉! – aligray