我有一个用户控件,我用作我的ListBox中所有项目的DataTemplate。在UserControl中有一个动画非常简单 - 它只是扩展了某个ListBox,并且它可以工作。问题是,当我滚动时,每个第N个项目也扩展了ListBox,其中N取决于我的浏览器的大小(换句话说,ListBox在任何时候持有多少项。)
好像在滚动时加载到列表框中的新项目正在绊倒这个动画。我能做些什么吗?
答案 0 :(得分:2)
如果您的外部ListBox只包含几个项目,则将其添加到其Xaml: -
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItesmPanelTemplate>
</ListBox.ItemsPanel>
默认情况下,ListBox使用VirtualizingStackPanel
,其中只包含当前显示的ListBoxItem
的具体实例。根据需要生成的项目ItemContainerGenerator
将回收现有项目。我怀疑有些人在重新用于显示ItemsSource中的另一个项时,ListBoxItem
的状态并未完全清除。