再次,我为TreeView创建了TreeViewItem动画,它使用TreeViewItem.Loaded
来触发动画:
<Style TargetType="{x:Type TreeView}">
<Style.Resources>
<Style TargetType="{x:Type TreeViewItem}">
<Style.Triggers>
<EventTrigger RoutedEvent="TreeViewItem.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
From="0" To="1" BeginTime="00:00:00" Duration="00:00:01" FillBehavior="Stop"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Style.Resources>
</Style>
但是现在当TreeView扩展TreeViewItem时,所有TreeViewItem都被加载,并且所有触发动画都在同一时间。
我有什么方法可以一个接一个地动漫他们吗?所以第一个项目淡入,然后是第二个项目。
编辑:
我刚刚在SO中找到this,给出了解决方案:
一个。创建一个动画不透明的故事板,并将其应用于 ItemTemplate中
B中。在后台线程上使用计时器将项目逐个添加到绑定集合
我想知道这是唯一的解决方案吗?