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

关于这如何可能的任何想法?

最佳答案

我假设当您说“调整大小”时,您的意思是要在两个方向上拉伸(stretch)项目。要使用默认的 ListBox 并水平拉伸(stretch)项目,您只需要:

<ListBox HorizontalContentAlignment="Stretch"/>

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

垂直拉伸(stretch)需要摆脱用于为项目进行布局的 StackPanel,因为它没有在方向方向上调整其子项大小的概念。使用最简单的方法是 UniformGrid,但您可能需要更自定义的东西,具体取决于您希望项目相对于彼此的大小。您还需要对 VerticalContentAlignment 设置(默认为中心)执行相同的操作。所以这里有一个可以双向拉伸(stretch)项目的方法:
<ListBox HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Columns="1"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</ListBox>

关于wpf - 根据列表框尺寸调整列表框内容的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2323063/

10-13 07:58