Я думаю, что это немного сложная проблема.
У меня есть ListBox, который должен представлять некоторые изображения, и каждое изображение должно быть помещено в прямоугольник или квадратную рамку.Это просто, я знаю.Дело в том, что в этом списке всегда должно быть по 3 элемента в строке, независимо от разрешения экрана или размера окна.
Чтобы получить его, я создал шаблон списка следующим образом:
<ListBox Grid.Column="2" Grid.Row="1" x:Name="_productsLB" SelectedIndex="0"
ItemsSource="{Binding Products}" ScrollViewer.HorizontalScrollBarVisibility="Disabled"
HorizontalContentAlignment="Stretch">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="3" Rows="4"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderThickness="1" Background="White" BorderBrush="Black" Margin="8"
Width="Auto" Height="Auto" HorizontalAlignment="Stretch">
<Image Source="{Binding ImagePath}" Stretch="Uniform"/>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Проблема в том, что я получаю прямоугольную рамку вокруг изображения вместо квадратной рамки вокругListBoxItem.
Помните, что я не могу указать свойство width, потому что они должны зависеть от ширины столбца равномерной сетки.
У вас есть намеки?
Большое спасибо!