Использование wpf для анимации эллипсов - PullRequest
1 голос
/ 05 июля 2011

Я должен реализовать простую программу для дорожных развязок.Изображение перекрестка установлено как фоновое свойство WPF Grid, и у меня есть ArrayLists внутри очереди для представления цвета каждого автомобиля, исходной улицы и улицы назначения.
Теперь мне нужно анимировать автомобили как движущиеся эллипсы, и мне нужнокаждая машина начинает свое движение после того, как из экрана выскочит первобытная машина.
Я использую следующий код, но он анимирует только первую машину.
Какое решение?

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 Ответ

0 голосов
/ 05 июля 2011

В WPF анимация организована по-другому.

Я бы посоветовал вам взглянуть на Раскадровка . Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...