0

我一直在为选取框式图像滚动控制而苦苦挣扎。

有一刻,我坚持使用模板化的 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 中删除。

最后要做的是实现自定义项目添加行为(平滑滑入而不是插入翻译其他行为)。我应该从 StackPanel 派生来实现这样的效果,还是只对当前添加的项目执行 DoubleAnimation?任何建议表示赞赏。

4

1 回答 1

1

检查一下:将项目添加到 Listbox 时为 WPF 数据模板设置动画。它会满足您的需求吗?

于 2010-02-19T15:49:37.373 回答