У меня есть список с ItemsPanelTemplate, установленным на UniformGrid с row = 6 и cols = 7.
Я хочу, чтобы элементы списка заполняли свое пространство.
Я использую полный набор данных, определенный в словаре.
Внешний элемент управления моего шаблона - это граница с HorizontalAlignment = Stretch. и VerticalAlignent = Strectch, но шаблоны не заполняют пространство элементов списка?
Любые идеи? Малькольм
возможный дубликат Элементы не заполняют список wpf с использованием таблички данных





EDITED: добавлена дополнительная информация и дан ответ на вопрос.
Интересный способ сделать ListBoxItems единообразным с другими элементами - это использовать функцию общего осциллографа Grids в вашем DataTemplate.
Пример:
<ItemsControl Grid.IsSharedSizeScope = "True" ItemsSource = "{Binding Path=Items}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation = "Horizontal">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup = "Content"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column = "1" Text = "{Binding Path=Name}">
</Grid>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Теперь все TextBlocks будут одинакового размера в вашем макете. Дочерний элемент должен заполнить все доступное пространство, если не задана конкретная ширина / высота.
В качестве альтернативы вы можете установить ширину и высоту элемента управления на растяжение, однако я думаю, что использование Grid.SharedScopeSize является более элегантным способом достижения того же эффекта.
Ответ на этот вопрос - установить HorizontalContentAligment и VerticalContentAlignment на Stretch в LISTBOX, а не на табличке данных.
Можете ли вы предоставить образец XAML?