Мне определили поле списка как это:
<ListBox.ItemTemplate>
<DataTemplate>
<ItemsControl>
<!-- Contents here -->
</ItemsControl>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Моя проблема - это: Этот список содержится в управлении сеткой и должен использовать все свободное пространство той ячейки его содержавшийся в, но это не должно вынуждать родителя выделить БОЛЬШЕ места. Но то, что происходит, - то, что, после того как обернуть панель заполняется, вместо того, чтобы на самом деле перенести объекты к следующей строке (как она должна), она просто разворачивает ширину поля списка, и в процессе вынуждает родительскую сетку изменить размер также.
Как я могу заставить панель переноса уважать размер своего родителя и не вынуждать это развернуть свой размер?
Заранее спасибо!
править: Еще одна вещь. Я могу установить ширину wrappanel явно, чтобы заставить его перенестись, но я хотел бы, чтобы wrappanel имел тот же размер как поле списка.
Установить ScrollViewer.HorizontalScrollBarVisibility = "Disabled"
и WrapPanel
будет переноситься.
<Grid>
<ListBox
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</Grid>
Я решил проблему .. проблема заключалась (вероятно) в том, что некоторые из контейнеров, содержащих мой список, были слишком щедры с выделением места для моего списка. В любом случае, как только я удалил полосу прокрутки для остальных моих контейнеров (содержащих мой список), все заработало должным образом. :)
Спасибо за ответ, это очень помогло в решении этой проблемы.