Как я могу сделать ListBoxItem растянуть по вертикали - PullRequest
6 голосов
/ 09 сентября 2009

Я хотел бы сделать функцию ListBox похожей на Grid. Каждый раз, когда добавляется новый элемент, он должен выглядеть как новый GridRow (с высотой звезды). Таким образом, если есть два элемента, каждый из них займет половину доступного пространства. В какой-то момент строка Grid будет меньше, чем элементы MinHeight, в этот момент Grid развернется, и содержащийся ScrollViewer может сработать.

Вы увидите это поведение с сеткой внутри ScrollViewer. Однако мне нужно, чтобы это работало с ListBox, чтобы я мог просто установить ItemsSource, создать DataTemplate и двигаться дальше.

Проблема со значением по умолчанию ListBox ItemsPanel заключается в том, что он не позволит моему первому элементу развернуться, чтобы заполнить все доступное пространство.

UPDATE: Вот код, чтобы заставить его работать:

<ListBox VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" Width="Auto" Height="Auto">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Columns="1"></UniformGrid>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</ListBox>

1 Ответ

1 голос
/ 09 сентября 2009

Это ТАКОЕ сообщение содержит довольно хорошую информацию, которая, похоже, имеет отношение к вашему сообщению. WPF - Почему элементы списка не заполняют равномерную сетку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...