У меня есть анимация с флип-картой, которая отлично работает. С одной стороны, она имеет кнопку, при нажатии, запускает анимацию «FlipOpen»:Связать анимацию с объектом ViewModel
<Button Content="click me" Height="130">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click" >
<BeginStoryboard Storyboard="{StaticResource FlipOpen}">
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
<Storyboard x:Key="FlipOpen">
<DoubleAnimation Duration="00:00:0.5" Storyboard.TargetProperty="RenderTransform.ScaleX" From="-1" To="1" Storyboard.TargetName="Back"/>
<DoubleAnimation Duration="00:00:0.5" Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="-1" Storyboard.TargetName="Front"/>
</Storyboard>
<Storyboard x:Key="FlipClose">
<DoubleAnimation Duration="00:00:0.5" Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="-1" Storyboard.TargetName="Back"/>
<DoubleAnimation Duration="00:00:0.5" Storyboard.TargetProperty="RenderTransform.ScaleX" From="-1" To="1" Storyboard.TargetName="Front"/>
</Storyboard>
Я хотел бы связать анимацию логическое свойство в моем ViewModel и I попытались использовать DataTriggers:
а) определить стиль:
<Style x:Key="myStyle">
<Style.Triggers>
<DataTrigger Binding="{Binding FlipTheCard}" Value="true">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource FlipOpen}"/>
</DataTrigger.EnterActions>
</DataTrigger>
<DataTrigger Binding="{Binding FlipTheCard}" Value="false">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource FlipClose}"/>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
б) применять его как для грид-контейнеров, которые содержат переднюю и заднюю:
<Grid RenderTransformOrigin="0.5,0.5" x:Name="Back" Opacity="0" Style="{StaticResource myStyle}">
...
</Grid>
с) не запустить анимацию на кнопку мыши, но связать команду, которая переключает логическое значение с кнопкой :
<Button Content="click me!" Command="{Binding ToggleFlipCard}" Height="130">
Однако это приводит к исключению ("раскадровка-структура в стиле не может иметь Имя_целевого_объекта. Удалите Имя_целевого_объект ").
Что я здесь делаю неправильно? Как я могу связать эти анимации в логическое свойство в моем ViewModel?
Спасибо за любую помощь!
могли бы вы также разместить свой код для 'FlipClose'? – Staeff
Я добавил его в свой пост. Он просто откидывается назад. – peter
Смотрите: http://stackoverflow.com/questions/11206387/how-to-apply-storyboard-as-style – goobering