按顺序为ItemsControl中的项目设置动画

时间:2009-06-15 11:42:56

标签: c# wpf xaml

所以作为一个简单的例子,如果你有一个像下面那样的ItemsControl动态创建它的内容我怎样才能添加触发器,以便每个项目都有动画效果,并且基于它在列表中的索引具有BeginTime。

我尝试扩展按钮以使其包含延迟时间,然后绑定ControlTemplate按钮触发器中包含的动画的BeginTime,因为动画可以冻结,所以存在问题。

如何在ItemsControl本身或单个项目上创建一个Storyboard,逐个显示每个项目。

有什么想法吗?

我的标记的起点:

<Window.Resources>
    <ResourceDictionary >
        <Collections:ArrayList x:Key="ItemsList">
            <System:String>OPTIONS</System:String>
            <System:String>STICKERS</System:String>
            <System:String>STYLING</System:String>
            <System:String>WHEELS</System:String>
            <System:String>INTERIOR</System:String>
            <System:String>ROOF</System:String>
            <System:String>COLOURS</System:String>
            <System:String>VERSION</System:String>
        </Collections:ArrayList>
    </ResourceDictionary>
</Window.Resources>

<Grid>
    <ListView ItemsSource="{StaticResource ItemsList}">
        <ListView.Style>
            <Style>
                <Setter Property="ListView.ItemTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <Button Content="{Binding}" />
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </ListView.Style>
    </ListView>
</Grid>

干杯 Ĵ

1 个答案:

答案 0 :(得分:1)

通过XAML可能无法做到这一点。

相反,在C#代码隐藏中填充ListView,并在代码中创建Storyboard和Triggers。一个想法是将Button扩展为“显示下一个按钮”字段,播放显示动画的故事板,然后触发下一个按钮执行相同的操作,直到到达“NextButton == null”的最后一个按钮< / p>