none
Анимация в коде RRS feed

  • Вопрос

  • Здравствуйте!

    Не могу понять, как анимировать масштабирование треугольника посредством scale(а вернее задать это свойcтво)?

     

        DoubleAnimation da = new DoubleAnimation {Duration = new Duration(TimeSpan.FromSeconds(5)) };

                da.To = 2;

                Storyboard sb = new Storyboard ();

                sb.Children.Add(da);

                Storyboard.SetTarget(da, rectangle1.RenderTransform); ?

                Storyboard.SetTargetProperty(da, new PropertyPath("ScaleX")); ?

                sb.Begin(); 

     

Ответы

  • Для Silverlight'а вот так работает:

          ScaleTransform st = new ScaleTransform();
          st.ScaleX = 2.0;
          this.canvas1.RenderTransform = st;
    
          Storyboard sb = new Storyboard();
          DoubleAnimation da = new DoubleAnimation();
          da.Duration = new Duration(TimeSpan.FromSeconds(5));
          da.From = 1.0;
          da.To = 2.0;           
          sb.Children.Add(da);
    
          Storyboard.SetTargetProperty(da, new PropertyPath("Canvas.RenderTransform.ScaleX"));
          Storyboard.SetTarget(da, canvas1);
          
          sb.Begin();
    

    • Предложено в качестве ответа Abolmasov DmitryModerator 5 мая 2011 г. 10:01
    • Помечено в качестве ответа saiman_OK 5 мая 2011 г. 10:57
    Модератор

Все ответы

  • Для Silverlight'а вот так работает:

          ScaleTransform st = new ScaleTransform();
          st.ScaleX = 2.0;
          this.canvas1.RenderTransform = st;
    
          Storyboard sb = new Storyboard();
          DoubleAnimation da = new DoubleAnimation();
          da.Duration = new Duration(TimeSpan.FromSeconds(5));
          da.From = 1.0;
          da.To = 2.0;           
          sb.Children.Add(da);
    
          Storyboard.SetTargetProperty(da, new PropertyPath("Canvas.RenderTransform.ScaleX"));
          Storyboard.SetTarget(da, canvas1);
          
          sb.Begin();
    

    • Предложено в качестве ответа Abolmasov DmitryModerator 5 мая 2011 г. 10:01
    • Помечено в качестве ответа saiman_OK 5 мая 2011 г. 10:57
    Модератор
  • А как указать scaleY вместе с ScaleX в этой строке: Storyboard.SetTargetProperty(da, new PropertyPath("Canvas.RenderTransform.ScaleX"
    ));
     =) и где про это можно почитать ?
  • Нужно добавить еще одну анимацию в сторибоард:

          DoubleAnimation da_y = new DoubleAnimation();
          da_y.Duration = new Duration(TimeSpan.FromSeconds(5));
          da_y.From = 1.0;
          da_y.To = 2.0;
          sb.Children.Add(da_y);
    
          Storyboard.SetTargetProperty(da_y, new PropertyPath("Canvas.RenderTransform.ScaleY"));
          Storyboard.SetTarget(da_y, canvas1);
    

    Модератор
  • Пожалуйста, не забудьте отметить ответы. Спасибо.


    Для связи [mail]
    Модератор