根据Listbox的尺寸调整Listbox内容大小

3
我正在尝试根据列表框自身的大小调整列表框内容的大小。这是在WPF中完成的。
有没有任何想法如何实现呢?
1个回答

5

我猜您说的“resize”是指您想要在两个方向上拉伸项目。要将默认的ListBox水平拉伸所有项目,您只需要:

<ListBox HorizontalContentAlignment="Stretch"/>

默认设置为左对齐,所以所有的ListBoxItems都会被推向左侧,并根据它们的内容逐个调整大小。
垂直拉伸需要消除用于对项目进行布局的StackPanel,因为它无法在Orientation方向上重新调整其子项的大小。最简单的方法是使用UniformGrid,但根据您希望项目相对大小的方式,您可能需要更加定制化的东西。您还需要对VerticalContentAlignment设置执行相同的操作(默认情况下为Center)。因此,这里有一个可以在两个方向上拉伸项目的示例:
<ListBox HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Columns="1"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</ListBox>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接