我一直在使用选框式图像滚动控件挣扎一段时间。
在某个时刻,我坚持使用模板化的ItemsControl:
<Window.Resources>
<DataTemplate x:Key="itemsTemplate">
<Image Source="{Binding AbsolutePath}"></Image>
</DataTemplate>
</Window.Resources>
<ItemsControl ItemTemplate="{StaticResource itemsTemplate}" x:Name="ic"
ItemsSource="{Binding ElementName=mainWindow, Path=DataItems}" VirtualizingStackPanel.IsVirtualizing="True">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Vertical" VerticalAlignment="Bottom"
VirtualizingStackPanel.IsVirtualizing="True" >
</VirtualizingStackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
ItemsControl绑定到ObservableCollection,因此我可以在运行时添加项目。一旦项目离开屏幕,它就会从ObservableCollection中删除。
最后要做的是实现自定义项添加行为(平滑滑入而不是insert-translateothers行为)。 我应该从StackPanel派生来实现这样的效果,还是只对当前添加的项目执行DoubleAnimation? 任何建议表示赞赏。