Итак, у меня есть анимация TreeViewItem для TreeView, которая использует 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 загружаются и все запускают анимацию одновременно.
Есть ли какой-нибудь способ, которым я могу аниме они один за другим? Таким образом, первый элемент исчезает, а затем второй элемент.
EDIT:
Я только что нашел это в SO, данное решение:
A. создайте раскадровку, которая оживляет непрозрачность, и примените ее к
ItemTemplate
B. использовать таймер в фоновом потоке, чтобы добавить элементы один за другим в связанную коллекцию
Интересно, это единственное решение?