根据列表框维度调整列表框内容的大小

时间:2010-02-24 01:33:23

标签: wpf listbox resize

我正在尝试根据列表框本身调整列表框的内容。这是在WPF中完成的。

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:5)

我假设你说“调整大小”意味着你想要在两个方向上拉伸项目。要获取默认的ListBox并水平拉伸项目,您只需要:

<ListBox HorizontalContentAlignment="Stretch"/>

默认为Left,因此所有ListBoxItems最终都会向左推,并根据其内容单独调整大小。

垂直拉伸需要摆脱用于对项目进行布局的StackPanel,因为它没有在朝向方向上调整其子项大小的概念。最简单的方法是使用UniformGrid,但您可能需要更多自定义内容,具体取决于您希望项目相对于彼此的大小。您还需要使用VerticalContentAlignment设置(默认为Center)执行相同的操作。所以这里有两种方式可以拉伸项目:

<ListBox HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Columns="1"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</ListBox>