Muchas veces por exigencias de lo que estamos haciendo necesitamos crear una animación en tiempo de ejecución y realizarlo es bastante sencillo, aqui teneis un codigo de ejemplo que realiza la animación de un rectangulo
public void Create_And_Run_Animation(object sender, EventArgs e) { // Crear un rectangulo rojo Rectangle myRectangle = new Rectangle(); myRectangle.Width = 200; myRectangle.Height = 200; Color myColor = Color.FromArgb(255, 255, 0, 0); SolidColorBrush myBrush = new SolidColorBrush(); myBrush.Color = myColor; myRectangle.Fill = myBrush; // añadir el rectangulo LayoutRoot.Children.Add(myRectangle); // La duración es de 2 segundos Duration duration = new Duration(TimeSpan.FromSeconds(0.2)); // Crear Dos Doubleanimation junto a sus propiedades DoubleAnimation myDoubleAnimation1 = new DoubleAnimation(); DoubleAnimation myDoubleAnimation2 = new DoubleAnimation(); myDoubleAnimation1.Duration = duration; myDoubleAnimation2.Duration = duration; Storyboard sb = new Storyboard(); sb.Duration = duration; sb.Children.Add(myDoubleAnimation1); sb.Children.Add(myDoubleAnimation2); Storyboard.SetTarget(myDoubleAnimation1, myRectangle); Storyboard.SetTarget(myDoubleAnimation2, myRectangle); // Enviamos las propiedades atachadas Canvas.Left y Canvas.Top // que seran las target properties de las animaciones Storyboard.SetTargetProperty(myDoubleAnimation1, "(Canvas.Left)"); Storyboard.SetTargetProperty(myDoubleAnimation2, "(Canvas.Top)"); myDoubleAnimation1.To = 200; myDoubleAnimation2.To = 200; // Crear la StoryBoard como un recurso. LayoutRoot.Resources.Add(sb); // Lanzar la animacion. sb.Begin(); }
Muy interesante, ahora tengo la siguiente consulta, actualmente tenemos en la empresa una aplicacion desarrollada en adobe flash, que carga aproximadamente 1000 MovieClips, el tema que el consumo de recursos es considerablemente alto, ahora, en Silverligth si creo 1000 animaciones, como maneja el tema del consumo de recursos??
Gracias!
Buena Pregunta !! lastima qu esta sin respuesta!!
Un Saludo!!