2009-03-12 4 views
27

В моем проекте у меня есть список WPF, привязанный к ObservableCollection. Каждый раз, когда я добавляю новый элемент в коллекцию, тот же элемент автоматически добавляется в список. Чтобы отобразить элементы в списке, я использую XAML Datatemplate.Анимировать WPF Datatemplate, когда элемент добавлен в список?

Что я хочу сделать, это анимировать элемент один раз, когда он добавлен в Collection/Listbox. Можно ли это сделать? Как может быть анимация в datatemplate? Наверное, мне нужен триггер, чтобы запустить этот анимационный режим, но какой триггер запускается при добавлении нового элемента/datatemplate?

ответ

25

Я думаю, что триггер события для элемента FrameworkElement.Loaded может работать. Например:

<DataTemplate DataType="{x:Type l:Foo}"> 
    <Button x:Name="Button" Content="{Binding Path=Bar}"> 
     <Button.Background> 
      <SolidColorBrush x:Name="ButtonBrush" Color="Tan" /> 
     </Button.Background> 
    </Button> 
    <DataTemplate.Triggers> 
     <EventTrigger RoutedEvent="FrameworkElement.Loaded" SourceName="Button"> 
      <BeginStoryboard> 
       <Storyboard> 
        <ColorAnimation Storyboard.TargetName="ButtonBrush" Storyboard.TargetProperty="Color" To="Red" /> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </DataTemplate.Triggers> 
</DataTemplate> 
+0

Работает как сон! Спасибо – TalkingCode

+0

Приятный трюк, tnx! знак равно –

Смежные вопросы