Это дополнительный вопрос к этому , на который был дан ответ.
Используя код:
<ListBox ScrollViewer.VerticalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
Вы можете создать список, в котором элементы заполняют ListBox
в столбцах слева направо, а последний элемент в определенном столбце никогда не обрезается (то есть, если элемент был слишком высоким, он перемещается в верхнюю часть). следующего столбца). Как я мог теперь динамически настроить Width
из ListBox
, чтобы «подогнать» его предметы и получить то же поведение по горизонтали. Итак, предположим следующее:
Если в данном Height
необходим только один Column
, чтобы соответствовать всем элементам, Width
из ListBox
должен быть размером Width
элементов.
Или, в данном Height
должно быть четыре Column
с, размер должен быть в четыре раза больше Width
элементов.
Наконец, скажем, в данном Height
должно быть больше Column
s, чем максимально допустимый Width
из ListBox
, ему нужно будет вычислить, насколько широким он должен быть, чтобы элементы в Column
s, которые не смогут поместиться, не обрезались, а просто не показывались, пока пользователь не прокрутил вправо.
Спасибо за вашу помощь !!
EDIT:
Я думаю, что более простой способ сформулировать вышесказанное состоит в том, что я ищу способ избежать «отсечения» элементов в списке. Я хотел бы создать список, который отображает элементы в сетке, но где вам не нужно было бы прокручивать, потому что некоторые элементы были частично покрыты и потребовали бы прокрутки вправо или влево, чтобы увидеть оставшуюся часть этого элемента (хотя список может быть только таким широким или высоким, и если бы было достаточно элементов, которые вам все равно нужно было бы прокрутить, чтобы увидеть все из них, то все элементы, которые вы видели, должны отображаться полностью) Также я забочусь только о первоначальном составлении списка. Ему не нужно «привязывать» элементы, чтобы он всегда умещался, но его можно прокручивать, чтобы он полностью заполнял доступное пространство отображаемыми элементами.
Мне показалось, что ключевой момент для этого - выяснить размер элемента списка во время выполнения и размер контейнера содержимого в списке, а затем вы можете настроить его так, чтобы он полностью подходил для такого большого количества элементов одновременно, прежде чем список изначально составлен?
Спасибо!