Я пытаюсь создать список, который может содержать более тысячи изображений в сетке, такой как дизайн. В перспективе конструкции было бы очень похоже на это:Список с тысячами изображений в обертке
Поскольку я не могу использовать WrapPanel как сломается виртуализации UI и StackPanel не может перечислить изображения в такой сетке (?) Я пытаюсь решить эту проблему, используя модифицированную версию https://virtualwrappanel.codeplex.com
Мой XAML:
<ListBox x:Name="GameWheel" ItemsSource="{Binding GameData}" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<c:VirtualizingWrapPanel IsItemsHost="True" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image x:Name="GameImage" Source="{Binding Path=ImagePath}" Width="{Binding ElementName=GameWheel, Path=ActualWidth, Converter={StaticResource widthConverter}}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Хотя этот подход работает, он по-прежнему довольно медленно и с ошибками, особенно при использовании привязки по ширине изображения. Есть ли лучший способ архивирования одного и того же результата? Без предпочтительной упаковки.
Все ли предметы будут одинаковыми Ширина (и высота)? – Kcvin
Я установил одну и ту же ширину на всех, но некоторые могут иметь разную высоту .... (у меня нет контроля над самими изображениями). Однако на данный момент я ограничиваю ширину, поэтому я всегда получаю 5 изображений в строке. – NeoID