c# – 如何在向ListViews添加元素时设置动画/过渡?

我有一个ListView,我通过绑定添加了Elements. ListView看起来像:
<ListView 
        x:Name="ListView" 
        Height="auto" 
        Width="350" 
        ItemsSource="{Binding}" 
        Padding="0,-20,0" 
        Grid.Row="1" 
        Grid.Column="0" 
        Background="#EFEFEF"
        ItemContainerStyle="{StaticResource ListViewStyle}">

        <ListView.ItemTemplate>
            <DataTemplate>
                <StackPanel Height="50" VerticalAlignment="Top" Margin="0,0" 
                        <TextBlock Text="{Binding name} textwrapping="Nowrap"/>
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

通过此基本设置,当元素绑定到基础List时,已经存在动画.奇怪的是使用不同的动画.第一个元素从右侧滑入,所有其他元素弹出.我正在寻找一种方法以相同的方式为所有添加的元素设置动画(例如从右侧滑入).我已经锁定了自动生成(通过Blend)ListViewStyle几个小时,但找不到东西.后来我发现可以在样式中添加这个属性

<Style x:Key="ListViewStyle" targettype="ListViewItem">
        <Setter Property="Transitions">
            <Setter.Value>
                <TransitionCollection>
                    <EntranceThemeTransition FromHorizontalOffset="400" />
                    <PopupThemeTransition FromHorizontalOffset="400"/>
                </TransitionCollection>
            </Setter.Value>
        </Setter>
 ...
 </Style>

EntranceThemeTransition和PopupThemeTransition似乎是正确的属性,因为它们改变了动画的行为.但我不知道如何使用它们或如何禁用它们.如何才能获得一个动画(从右侧滑入)到ListView?

解决方法

这应该工作:
<ListView
    x:Name="lv">
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel>
                <VirtualizingStackPanel.ChildrenTransitions>
                    <TransitionCollection>
                        <EntranceThemeTransition
                            FromHorizontalOffset="400" />
                    </TransitionCollection>
                </VirtualizingStackPanel.ChildrenTransitions>
            </VirtualizingStackPanel>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
</ListView>

*更新:

您还可以使用ListView.ItemContainerTransitions来定义这些转换.

相关文章

原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...
c语言输入成绩怎么判断等级
字符型数据在内存中的存储形式是什么