我想创建 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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top