Как синхронизировать анимацию между пользовательскими элементами управления в WPF

Я создаю несколько пользовательских элементов управления в обтекаемой панели. У меня есть модель представления, привязанная к пользовательскому элементу управления, и у меня есть анимация, запускаемая для свойства в модели представления. Очень простое переключение цвета с красного на прозрачный для имитации мигания.

<Storyboard x:Key="alertAnimation" RepeatBehavior="Forever" AutoReverse="True" >
    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
                                  Storyboard.TargetName="TileBorder"
                                  BeginTime="00:00:00"
                                  RepeatBehavior="Forever"
                                  AutoReverse="True"
                                  >
        <DiscreteColorKeyFrame Value="Red"/>
        <DiscreteColorKeyFrame KeyTime="00:00:00.500" Value="Transparent" />
    </ColorAnimationUsingKeyFrames>

</Storyboard>

Это прекрасно работает. Однако, поскольку я асинхронно загружаю несколько пользовательских элементов управления, мигающие анимации не синхронизируются, поэтому все они мигают в разное время. Теперь существует требование, чтобы все, что мигает на экране, должно было мигать с одинаковой частотой/временем. Есть ли способ синхронизировать эти анимации? Кажется, я не могу найти пример в любом месте, который соответствует тому, что я пытаюсь выполнить. Есть ли способ использовать ParallelTimeline, добавить в него все анимации и запускать/останавливать их с одного контроллера? Любые примеры, как это сделать?

РЕДАКТИРОВАТЬ 4/20 Было бы лучше определить анимацию в файле style.xaml и иметь «глобальную» раскадровку, в которую каждый элемент управления добавляет свою анимацию «мигания», и чтобы основной пользовательский интерфейс запускал раскадровку?

6
задан mdutra 20 April 2012 в 13:57
поделиться