0

我有一个具有以下结构的列表框。数据显示良好,没有问题。我想为 StackPanel 获得一些动画效果,但由于它位于 DataTemplate 内,我无法使用 Blend 来获得我想要的动画效果。

我想我可以为此编写一个事件处理程序和代码,但这是实现 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>
4

1 回答 1

0

好的,您需要做的就是创建一个新的用户控件并将所有动画添加到该用户控件并在您想要的位置开始动画。在列表框数据模板中,创建该数据模板的实例。

重现步骤:

  1. 在项目中创建一个新的用户控件。
  2. 在混合中将动画提供给该用户控件的动画。
  3. 在数据模板中添加用户控件。
  4. 在任何你想要的地方开始动画。

替代方案:无需创建新的用户控件,您可以通过创建故事板并应用所需的转换来指定动画。这为所有列表框项提供了一个通用动画。

于 2013-03-30T10:19:00.233 回答