Динамическое отключение EventTrigger \ Storyboard - PullRequest
1 голос
/ 03 октября 2008
<Grid.Triggers>
    <EventTrigger RoutedEvent="Border.Loaded">
            <EventTrigger.Actions >
                    <BeginStoryboard>
                            <Storyboard x:Name="MyStoryboard"    AutoReverse="True" RepeatBehavior="Forever">
                                  <ColorAnimationUsingKeyFrames    BeginTime="00:00:00"  Storyboard.TargetName="border" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)">
                                       <SplineColorKeyFrame KeyTime="00:00:01" Value="#FFFAFAFA"/>
                                  </ColorAnimationUsingKeyFrames>
                            </Storyboard>
                    </BeginStoryboard>
            </EventTrigger.Actions>
    </EventTrigger>
</Grid.Triggers>

Как включить / отключить этот триггер события \ анимацию динамически. Я думал, что смогу привязать к IValueConverter и отключить раскадровку, но, похоже, нет подходящего свойства для привязки?

Ответы [ 3 ]

1 голос
/ 03 октября 2008

Единственный триггер, доступный в настоящее время в Silverlight, это «Loaded», для всех остальных событий вам придется написать немного кода. Чтобы использовать эту технику, раскадровки должны идти в разделе «Ресурсы» вместо «Триггеры», и вы будете вызывать Begin () на раскадровке из кода.

Если вы создаете шаблон элемента управления, то есть так называемые переходы, которые позволяют запускать раскадровки на основе событий элемента управления, например MouseOver. Это обрабатывается диспетчером визуальных состояний:

http://timheuer.com/blog/archive/2008/06/04/silverlight-introduces-visual-state-manager-vsm.aspx

0 голосов
/ 19 октября 2008

Вы не можете делать то, что просите, с помощью триггеров в Silverlight. Там нет способа иметь условное в триггере. Вы можете подключить событие Loaded, проверить свое состояние там и, если оно выполнено, запустить раскадровку. Однако не существует эквивалента только для XAML.

0 голосов
/ 03 октября 2008

Я действительно не искал анимацию, которая будет отключена в зависимости от события. Я хотел сделать это на основе свойства моего бизнес-объекта, который я тоже связываю? Я надеялся, что было что-то вроде Storyboard.Enabled = False!?!?!

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