Я пытаюсь изменить размер содержимого своего списка в соответствии с самим списком. Это делается в WPF.
Есть идеи, как это возможно?
Я пытаюсь изменить размер содержимого своего списка в соответствии с самим списком. Это делается в WPF.
Есть идеи, как это возможно?
Я предполагаю, что когда вы говорите «изменить размер», вы имеете в виду, что хотите растянуть элементы в обоих направлениях. Чтобы взять ListBox по умолчанию и растянуть элементы по горизонтали, вам нужно:
<ListBox HorizontalContentAlignment="Stretch"/>
По умолчанию это Left, поэтому все ListBoxItems сдвигаются влево и имеют индивидуальный размер в зависимости от их содержимого.
Вертикальное растяжение требует избавления от StackPanel, используемого для компоновки элементов, поскольку он не имеет понятия об изменении размеров своих дочерних элементов в направлении Ориентации. Самым простым в использовании является UniformGrid, но вам может потребоваться что-то более индивидуальное, в зависимости от того, как вы хотите, чтобы элементы были размером относительно друг друга. Вам также нужно будет сделать то же самое с параметром VerticalContentAlignment (по умолчанию Center). Итак, вот тот, который растягивает предметы в обе стороны:
<ListBox HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="1"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>