2010-02-24 3 views

ответ

5

Я предполагаю, что когда вы говорите «изменить размер», вы имеете в виду, что хотите растянуть предметы в обоих направлениях. Для того, чтобы ListBox по умолчанию и растягивать элементы по горизонтали все, что вам нужно:

<ListBox HorizontalContentAlignment="Stretch"/> 

по умолчанию Левый так все ListBoxItems в конечном итоге сдвинут влево и размер индивидуально в зависимости от их содержания.

Вертикальное растяжение требует избавления от StackPanel, используемого для создания макета для предметов, потому что у него нет концепции изменения размера его детей в направлении ориентации. Самая простая вещь для использования - UniformGrid, но вы можете захотеть чего-то большего в зависимости от того, как вы хотите, чтобы элементы имели размер относительно друг друга. Вам также нужно будет сделать то же самое с настройкой VerticalContentAlignment (по умолчанию Center). Итак, вот один из них, который будет растягивать предметы в обе стороны:

<ListBox HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <UniformGrid Columns="1"/> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
</ListBox> 
Смежные вопросы