2011-07-05 8 views
1

도로 접합 간단한 프로그램을 구현해야합니다. 접합점의 이미지는 WPF Grid의 Background Property로 설정되며 각 차, 원점 거리 및 대상 거리의 색상을 나타내는 대기열 안에 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 2.0에서 나온 이후로 사용되지 않는 ArrayLists와 함께 .NET 3.0에 도입 된 WPF를 사용하고 있습니까? –

답변

0

WPF 애니메이션은 다른 방식으로 구성되어 있습니다.

Storyboard을 살펴 보시기 바랍니다. 희망이 당신을 도울 것입니다.

+0

WPF를 사용하지 않아도됩니다. 이 작업을 수행하는 더 쉬운 방법이 있습니까? – danrah

+0

downvote는 의도하지 않았으며, 지금 내 프로필을 확인한 후에 만 ​​깨달았습니다. 며칠 전에 일어났기 때문에 나는 그것을 되돌릴 수 없습니다. 그래서 응답 중 하나가 보상을위한 자유로운 upvote를주었습니다. 죄송합니다! – aligray