У меня есть UserControl (XAML ниже), у которого есть ListBox, который я хочу отображать изображения внутри WrapPanel, где изображения отображаются столько раз, сколько уместится в одну строку, а затем переносятся на следующую строку и т. Д. Это работает, кроме когда ListBox становится больше, чем доступное пространство в окне, я не получаю вертикальную полосу прокрутки, то есть содержимое обрезается. Если я установил фиксированную высоту в ListBox, полоса прокрутки появляется и работает, как ожидалось. Как сделать так, чтобы этот список увеличивался до доступного пространства, а затем отображал вертикальную полосу прокрутки? Этот элемент управления находится внутри StackPanel внутри Grid в главном окне. Если я оберну StackPanel внутри ScrollViewer, я получу полосу прокрутки, которая мне нужна, но это не очень хорошее решение, если я хочу добавить еще несколько элементов управления в UserControl над ListBox (например, размер изображения "zoom" и т. Д.), Как я не хотел бы, чтобы они прокручивали изображения.
Спасибо !! :)
<UserControl x:Class="GalleryAdmin.UI.GalleryView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ListBox Name="itemListBox" BorderThickness="0" ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Background="LightGray" Margin="5" >
<StackPanel Margin="5">
<Image Source="{Binding Path=LocalThumbPath}" Height="100" />
<TextBlock Text="{Binding Path=Name}" TextAlignment="Center"></TextBlock>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>