题
我想创建 ListBox
函数,就像 Grid
一样。每次添加新项目时,它应该看起来像添加了一个新的 GridRow
(高度为星号)。因此,如果有两个项目,它们将占用可用空间的一半。在某些时候, Grid
行将小于 Grid
项,此时 Grid
将展开,并且包含ScrollViewer可以启动。
您将在 ScrollViewer
中看到一个带网格的行为。但是,我需要使用 ListBox
来实现这一点,这样我就可以设置 ItemsSource
,创建一个 DataTemplate
并继续前进。
默认 ListBox
ItemsPanel
的问题在于它不会让我的第一个项目展开以填充所有可用空间。
更新: 以下是使其正常运行的代码:
<ListBox VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" Width="Auto" Height="Auto">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="1"></UniformGrid>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
解决方案
此SO帖子有一些非常好的信息,似乎与您的帖子相关 WPF - 为什么列表框项目不能填充uniformgrid
不隶属于 StackOverflow