각 ListView 항목마다 다른 애니메이션을 만들고 싶습니다.각 ListBox에서 다른 WPF 스토리 보드 애니메이션 .ItemTemplate> DataTemplate
<Window.Resources>
<Storyboard x:Key="myAnimation" RepeatBehavior="Forever">
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Source" Duration="0:0:2">
<DiscreteObjectKeyFrame KeyTime="0:0:0">
<DiscreteObjectKeyFrame.Value>
<BitmapImage UriSource="/img/image1.png"/>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:1">
<DiscreteObjectKeyFrame.Value>
<BitmapImage UriSource="/img/image2.png"/>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
<ListBox Name="SessionList" HorizontalContentAlignment="Stretch" >
<ListBox.ItemTemplate>
<DataTemplate>
<Image x:Name="stateimage">
<Image.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard Storyboard="{StaticResource myAnimation}">
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
</Image>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
상기 XAML 코드 각을 listitem 동일한 애니메이션 myAnimation를 나타내는 잘 작동한다. 하지만 다른 애니메이션 (예 : Window.Resources에서 여러 Storyboards를 정의해야 함)을 표시하려면 어떻게해야합니까? Binding 속성에 따라 ViewItem ViewModel의?
는 편집 : 아래 링크 된 질문
, 나는 마침내 이런 식으로 일을 얻었다. 놀랄 만한!
<Window.Resources>
<Storyboard x:Key="animLOAD" RepeatBehavior="Forever">...</Storyboard>
<Storyboard x:Key="animPREPARED" RepeatBehavior="Forever">...</Storyboard>
<Style x:Key="animStyle" TargetType="{x:Type Image}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=st, Mode=OneWay}" Value="LOAD">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource animLOAD}" />
</DataTrigger.EnterActions>
</DataTrigger>
<DataTrigger Binding="{Binding Path=st, Mode=OneWay}" Value="PREPARED">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource animPREPARED}" />
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Image Style="{StaticResource animStyle}" />
스타일 트리거가있는 솔루션을 찾아 주셔서 감사합니다! 며칠 동안 수색했지만 해결 방법을 찾지 못했고 스타일을 사용하기 위해 내 마음 속에 들어 가지 않았습니다. – dontspeak
걱정할 필요가 없습니다! 다행이 너를 도울 수있어. 내 대답을 수락하십시오, 내 + rep 수정이 필요합니다. – Jack