2012-10-23 16 views
11

Pracuję nad kanałem informacyjnym. To będzie się aktualizować co jakiś czas i jeśli zostaną znalezione nowe elementy, chcę przesuwać nową treść z góry.Animacja slajdów ListBox na nowej pozycji Dodano

Teraz jestem tylko o to znikną w następujący sposób:.

<ListBox Grid.Row="0" Height="Auto" HorizontalAlignment="Stretch" Margin="5,5,5,5" VerticalAlignment="Top" ItemsSource="{Binding NewsItems,UpdateSourceTrigger=PropertyChanged}" > 
     <ListBox.ItemContainerStyle>     
      <Style TargetType="{x:Type ListBoxItem}">      
       <Style.Triggers>           
         <EventTrigger RoutedEvent="Loaded"> 
         <EventTrigger.Actions>         
          <BeginStoryboard> 
           <Storyboard>          
            <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:2" />  
           </Storyboard> 
          </BeginStoryboard> 
         </EventTrigger.Actions> 
        </EventTrigger> 
       </Style.Triggers> 
      </Style> 
      </ListBox.ItemContainerStyle> 
     <ListBox.ItemTemplate>  
     .... 
</ListBox> 

Działa to dobrze, ale naprawdę chciałbym mieć slajd przedmiot w Próbowałem wszystkich możliwych rzeczy mogłem znaleźć i nigdzie nie dojść. Każda pomoc byłaby bardzo cenna.

Odpowiedz

36

Czy tego właśnie szukasz?

<ListBox x:Name="lstBox" Grid.Row="0" Height="Auto" HorizontalAlignment="Stretch" Margin="5,5,5,5" VerticalAlignment="Top" ItemsSource="{Binding NewsItems,UpdateSourceTrigger=PropertyChanged}" > 
     <ListBox.ItemContainerStyle> 
      <Style TargetType="{x:Type ListBoxItem}"> 
       <Setter Property="LayoutTransform"> 
        <Setter.Value> 
         <ScaleTransform x:Name="transform" /> 
        </Setter.Value> 
       </Setter> 
       <Style.Triggers> 
        <EventTrigger RoutedEvent="Loaded"> 
         <EventTrigger.Actions> 
          <BeginStoryboard> 
           <Storyboard> 
            <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:2" /> 
            <DoubleAnimation Storyboard.TargetProperty="LayoutTransform.ScaleY" From="0" Duration="0:0:.2"/> 
           </Storyboard> 
          </BeginStoryboard> 
         </EventTrigger.Actions> 
        </EventTrigger> 
       </Style.Triggers> 
      </Style> 
     </ListBox.ItemContainerStyle> 
    </ListBox> 
+0

To się udało. Przegapiłem dodając właściwość setera. Dziękuję Ci! – TrialAndError

+0

Chciałbym móc to powtórzyć wiele razy! Tak prosty i robi dokładnie to, co chciałem! Dzięki! – Darkhydro

+0

To jest fajne. Niestety, UnLoad nawet nie działa w ten sam sposób, aby usunąć przedmiot. Zakończyłem implementację niestandardowego panelu z wywoływaniem Arrange and Measure –