2009-03-12 6 views
27

Dans mon projet, j'ai une Listbox WPF liée à une ObservableCollection. Chaque fois que j'ajoute un nouvel élément à la collection, le même élément est automatiquement ajouté à la liste. Pour afficher les éléments dans la zone de liste, j'utilise un Datatemplate XAML. Ce que je veux faire est animer un élément une fois quand il est ajouté à la collection/Listbox. Est-ce que cela peut être fait? Comme l'animation dans le datatemplate peut-être? Je suppose que j'ai besoin d'un trigger pour démarrer cette animation mais quel déclencheur est déclenché quand un nouvel item/datatemplate est ajouté?Animate WPF Datatemplate lorsque l'élément a été ajouté à Listbox?

Répondre

25

Je pense qu'un déclencheur d'événement pour l'événement routé FrameworkElement.Loaded pourrait fonctionner. Par exemple:

<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

Fonctionne comme un rêve! Merci – TalkingCode

+0

Bon tour, tnx! =) –

Questions connexes