2009-03-12 4 views
27

내 프로젝트에서 ObservableCollection에 바인딩 된 WPF 목록 상자가 있습니다. 컬렉션에 새 항목을 추가 할 때마다 동일한 항목이 자동으로 목록 상자에 추가됩니다. ListBox에 항목을 표시하기 위해 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! =) –

관련 문제