2010-05-29 3 views
3

Есть ли простой способ сыграть в StoryBoad назад (обратный)? Как есть метод Storyboard.Begin() Я бы ожидал, что есть какой-то метод типа «Storyboard.BeginReversed()», но я не могу его найти.Воспроизведение анимации (раскадровки) назад

Если нет способа воспроизвести анимацию назад, которую я должен написать для большинства моих анимационных дополнений. Это плохо пахнет мне (что-то вроде дублирования кода).

В основном я просто анимирую сетку, которая показывает и чем прячет.

ответ

1

Можете ли вы перевернуть «От» и «В» и воспроизвести его снова?

+0

Благодарим вас за ответ. Хорошо, вот так ... Но это не очень понятно. Дело в том, что вы должны хранить где-то информацию, которую вы перевернули. Я бы предпочел что-то более ясное. На самом деле нет никакого метода для этого, не создатели «Раскадровки» не думали об этом? – drasto

+0

@ drasto- Я думаю, что если вы хотите воспроизвести анимацию в обратном направлении, дизайнер рассматривает ее как другую анимацию. Вам решать сделать такую ​​анимацию проще. Конечно, вы всегда можете написать методы расширения, чтобы расширить раскадровку, которую вы используете, чтобы сделать ее более чистой. –

+0

Спасибо. Я попытаюсь написать метод расширения, но это будет нелегко. Мне придется позаботиться о таких мыслях, как вызов обратной анимации, в то время как анимация в прямом эфире все еще работает и аналогична. – drasto

-1

Я думаю, что это поможет вам (также см XAML пример ниже)

вар раскадровки = this.Resources [ "Storyboard1"] в качестве раскадровки;

 var anim = storyboard.Children[0] as DoubleAnimationUsingKeyFrames; 

     anim.AutoReverse = true; 

     anim.RepeatBehavior = RepeatBehavior.Forever; 

<Storyboard x:Key="Storyboard1"> 
     <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="border" Storyboard.TargetProperty="(FrameworkElement.Width)"> 
      <SplineDoubleKeyFrame KeyTime="00:00:00" Value="200"/> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="300"/> 
     </DoubleAnimationUsingKeyFrames> 
    </Storyboard> 
+0

Извините, я не хочу, чтобы AutoRepeat, я хочу воспроизвести его назад, возможно, позже, когда оригинальная игра закончилась. – drasto

Смежные вопросы