C# 如何在wpf'中为列表中添加的新项目设置动画;s列表视图

C# 如何在wpf'中为列表中添加的新项目设置动画;s列表视图,c#,wpf,C#,Wpf,我正在创建一个动态listviewlstDummies,其中包含一个虚拟UserControllerdummyItem: dummyItem item; for (int i = 0; i < 100; i++) { item = new dummyItem (); lstDummies.Items.Add(item); } dummyItem; 对于(int i=0;i

我正在创建一个动态listview
lstDummies
,其中包含一个虚拟UserController
dummyItem

dummyItem item;
for (int i = 0; i < 100; i++)
{
    item = new dummyItem ();
    lstDummies.Items.Add(item);

}
dummyItem;
对于(int i=0;i<100;i++)
{
项目=新的dummyItem();
lstmies.Items.Add(item);
}
以下是dummyItem XAML:

<UserControl x:Class="Kiosk.control.dummyItem"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300"
         x:Name="dummyItem">
<Grid Background="BurlyWood">
    <TextBox Text="hello world!" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBox>
</Grid>

</UserControl>

这是我的XAML:

 <ListView Grid.Row="1" x:Name="lstDummies">
        <ListView.Resources>
            <Style TargetType="{x:Type ListViewItem}">
                <Style.Triggers>
                    <EventTrigger RoutedEvent="Loaded">
                        <EventTrigger.Actions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.5">
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger.Actions>
                    </EventTrigger>
                </Style.Triggers>
            </Style>
        </ListView.Resources>
        <ListView.ItemsPanel >
            <ItemsPanelTemplate >
                <UniformGrid VerticalAlignment="Top" HorizontalAlignment="Left" Columns="17"/>
            </ItemsPanelTemplate>
        </ListView.ItemsPanel>
 </ListView>


现在,当新项目添加到lstDummies时,我需要淡入淡出效果。

这对我来说很好,即
不透明度
设置为
0
,然后在加载
ListViewItem
后设置动画:

<ListView x:Name="lstDummies">
    <ListView.Resources>
        <Style TargetType="{x:Type ListViewItem}">
            <Setter Property="Opacity" Value="0" />
            <Style.Triggers>
                <EventTrigger RoutedEvent="Loaded">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:2">
                                </DoubleAnimation>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
            </Style.Triggers>
        </Style>
    </ListView.Resources>
    <ListView.ItemsPanel >
        <ItemsPanelTemplate >
            <UniformGrid VerticalAlignment="Top" HorizontalAlignment="Left" Columns="17"/>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <ListView.ItemTemplate>
        <DataTemplate>
            <Rectangle Width="50" Height="50" Fill="Green" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

@dymanoid问题是淡入淡出动画不起作用。我希望新添加的项目显示在参考资料中定义的样式中,但我看不到正在使用它。将样式移动到
列表视图。ItemContainerStyle
@Aakanksha ItemContainerStyle未识别这意味着什么?您无法添加ItemContainerStyle?,而不是ListView。资源将其设置为ListView.ItemContainerStyle。您确定吗?不适合我。延迟添加的项目不会褪色effect@PouyaAk你试过我的例子吗?
矩形
应该淡入。尝试增加动画的持续时间以使其更清晰。我完全复制了您的代码,不幸的是,没有工作,添加的矩形没有褪色。我还增加了动画的持续时间和延迟时间,但没有
private async void Button_Click(object sender, RoutedEventArgs e)
{
    for (int i = 0; i < 100; i++)
    {
        lstDummies.Items.Add(new dummyItem());
        await Task.Delay(100);
    }
}