我目前有一个ListView,它有一个datatemplate,以便显示给定文件夹中的所有.jpg文件。目前我将它设置为一个包装面板,我发现当这个文件夹中的jpgs变大时,程序会变慢。我猜测是由于可视化的丢失。我尝试过使用This Example of a Visualizing WrapPanel - 这对我不起作用的原因是因为即使每个项目的高度/宽度相同,我仍然会得到模糊的滚动条行为。我只是想知道是否有更好的方法来实现这一点。如果我必须修改列数,例如,我就不会感到困扰。一次显示3 x 3。
我目前的列表视图如下所示:
<ListView ItemsSource="{Binding FilteredPhotoFiles}" SelectedItem="{Binding SelectedPhotoVM.SelectedPhoto}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType={x:Type ScrollContentPresenter}}}"
ItemWidth="{Binding (ListView.View).ItemWidth, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}"
ItemHeight="{Binding (ListView.View).ItemHeight, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Grid Margin="2,4,2,4">
<Grid.Background>
<SolidColorBrush Color="LightGray" Opacity="0.5"/>
</Grid.Background>
<Image Source="{Binding PhotoFileInfo.FullName}" Width="300" Height="170" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我只是想知道是否有更好的方法来做到这一点,这样我就不会失去性能,也许是某种GridView?