2013-03-30 6 views
0

У меня есть список со следующей структурой. Данные хорошо отображаются и проблем нет. Я хочу получить некоторые эффекты анимации для StackPanel, но поскольку он находится внутри DataTemplate, я не могу использовать Blend, чтобы повлиять на мою желаемую анимацию.Применить анимацию внутри DataTemplate

Я думаю, что я могу написать обработчик событий и код для этого, но это лучший подход к достижению анимации для элементов ListBox?

<ListBox Height="600" ItemsSource="{StaticResource learn}"> 
    <ListBox.ItemTemplate> 
    <DataTemplate> 
     <StackPanel Height="100" Orientation="Horizontal"> 
      <TextBlock Width="0" Text="{Binding ID}" /> 
      <Image Height="100" Width="100"/> 
      <StackPanel Orientation="Vertical" Width="319" VerticalAlignment="Center"> 
       <TextBlock TextWrapping="Wrap" Text="{Binding Text}" Margin="6,0,0,0" FontSize="29.333" /> 
       <TextBlock TextWrapping="Wrap" Text="{Binding Description}" Margin="6,0,0,0" FontSize="16"/> 
      </StackPanel> 
     </StackPanel> 
    </DataTemplate> 
    </ListBox.ItemTemplate> 
    </ListBox> 

ответ

0

Ладно, все, что вам нужно сделать, это создать новый пользовательский элемент управления и добавить все анимации к этому элементу управления пользователя и начать анимацию, где вы хотите. В шаблоне данных окна списка создайте экземпляр этого шаблона данных.

Шаги для воспроизведения:

  1. Создайте новый пользовательский элемент управления в проекте.
  2. Дайте анимации анимации этому пользовательскому элементу управления в blend.
  3. Добавить элемент управления пользователя в шаблоне данных.
  4. Запустите анимацию, где бы вы ни пожелали.

Альтернатива: без создания нового пользовательского элемента управления вы можете указать анимацию, создав раскадровку и применяя необходимые преобразования. это дает общую анимацию всем элементам списка.

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