Я начал разрабатывать свой код, используя пример из SO WPF: arranging collection items in a grid. Теперь, чтобы получить возможность выбора ячейки, я переименовал каждый ItemsControl к ListBox, потому что ListBox есть-ItemsControl (XAML несколько упрощенный):Масштабирование изображений в WPF ListBox
<ListBox HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" ItemsSource="{Binding YourItems}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<Grid/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemContainerStyle>
<Style>
<Setter Property="Grid.Column" Value="{Binding X}"/>
<Setter Property="Grid.Row" Value="{Binding Y}"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Image RenderOptions.BitmapScalingMode="LowQuality" Source="{Binding ...ImageSource, Mode=OneWay}">
</Image>
</DataTemplate>
</ListBox.ItemTemplate>
Сетка заполняется тест глиф выполнения, изображаемый на основе по коду here.
Удивительно, но это сработало - вид. Отборные работы. Однако в случае с ItemsControl не было полосы прокрутки. Все красиво красиво. Когда я сделал окно меньше, ячейки сетки сократились, а также изображения. Когда я сделал окно больше, все увеличилось.
Теперь, с ListBox, это не тот случай. Размер изображения остается фиксированным. Если окно недостаточно велико, есть горизонтальная полоса прокрутки, и когда окно недостаточно велико, некоторые изображения скрыты, и пользователю нужно прокрутить вправо.
Итак, мой вопрос: Если ListBox - это ItemControl, почему мои изображения не будут одинаковыми? Что я должен сделать, чтобы исправить это?