如何将元素添加到一个列表视图时设置的动画/转换?(How to set animations/tra

2019-07-03 14:51发布

我有一个ListView至极我添加的元素通过结合。 ListView控件的样子:

 <ListView 
        x:Name="ListView" 
        Height="auto" 
        Width="350" 
        ItemsSource="{Binding}" 
        Padding="0,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,0,0" 
                        <TextBlock Text="{Binding name} TextWrapping="NoWrap"/>
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

与此基本设置已经有当元件被粘结下面的列表中的动画。 奇怪的是,以不同的动画被使用。 第一个元素从右侧和所有其他元素弹出滑动英寸 我在寻找一种方式来制作动画的所有添加的元素以同样的方式(例如,从右侧滑入)。 我一直锁定在几个小时产生的(通过混合)ListViewStyle现在的汽车,但未能找到。 后来我发现,这是可以添加此属性的样式里面:

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

EntranceThemeTransitionPopupThemeTransition似乎是正确的属性,因为他们改变了动画的行为。 但我不知道如何使用它们或如何禁用一个。 我怎样才能得到只有一个动画(从右侧滑入)到ListView?

Answer 1:

这应该工作:

<ListView
    x:Name="lv">
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel>
                <VirtualizingStackPanel.ChildrenTransitions>
                    <TransitionCollection>
                        <EntranceThemeTransition
                            FromHorizontalOffset="400" />
                    </TransitionCollection>
                </VirtualizingStackPanel.ChildrenTransitions>
            </VirtualizingStackPanel>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
</ListView>

*更新:

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



文章来源: How to set animations/transitions when adding elements to a ListViews?