안녕하세요.
Button 내에 Rectangle을 넣어서 애니메이션을 만들고 있습니다.
Button이 클릭 되면, VM의 특정 값의 bool 값이 바꾸고 bool 값이 True이면 애니메이션이 실행되는 구조입니다.
여기서 애니메이션의 Duration을 VM의 값을 Binding해서 사용하고 싶은데, Binding을 하게 되면 아래와 같은 에러를 표출합니다.
“InvalidOperationException: 스레드에서 사용하기 위해 이 Storyboard 시간 표시 막대 트리를 고정할 수 없습니다.”
DoubleAnimation의 Duration에는 Binding을 할 수 없는 건 지 궁금합니다.
아니면 다른 방법이 있는 지 궁금합니다.
Duration에 넣는 값은 TimeSpan 값 입니다.
<Rectangle.Style>
<Style TargetType="Rectangle">
<Style.Triggers>
<DataTrigger Binding="{Binding IsPlaying}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Width"
To="26"
Duration="{Binding EventTime}" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Width"
To="0"
Duration="0:0:0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Rectangle.Style>