ListBox中的Silverlight动画控件

时间:2011-01-02 21:34:21

标签: silverlight

我有一个用户控件,我用作我的ListBox中所有项目的DataTemplate。在UserControl中有一个动画非常简单 - 它只是扩展了某个ListBox,并且它可以工作。问题是,当我滚动时,每个第N个项目也扩展了ListBox,其中N取决于我的浏览器的大小(换句话说,ListBox在任何时候持有多少项。)

好像在滚动时加载到列表框中的新项目正在绊倒这个动画。我能做些什么吗?

1 个答案:

答案 0 :(得分:2)

如果您的外部ListBox只包含几个项目,则将其添加到其Xaml: -

<ListBox.ItemsPanel>
    <ItemsPanelTemplate>
         <StackPanel />
    </ItesmPanelTemplate>
</ListBox.ItemsPanel>

默认情况下,ListBox使用VirtualizingStackPanel,其中只包含当前显示的ListBoxItem的具体实例。根据需要生成的项目ItemContainerGenerator将回收现有项目。我怀疑有些人在重新用于显示ItemsSource中的另一个项时,ListBoxItem的状态并未完全清除。