WPF:水平对齐的集合,具有均匀宽度的项目

时间:2017-08-22 17:02:24

标签: wpf itemtemplate

我有一个从视图模型绑定的可变数量的项目,需要水平显示并且可以选择。 每个项目由文本表示,这些文本的长度不同。当我使用带有水平方向的StackPanel的列表视图作为其ItemTemplate时,这些项目仅与文本内部一样宽。 有没有办法让它们大小相同,意味着最大尺寸?理想情况下,没有一些复杂的代码隐藏,使用项目模板等? 注意:我不能设置一些任意的最小宽度,因为我不知道文本最终可以有多长(不同的语言等)

1 个答案:

答案 0 :(得分:1)

您可以使用具有ListBox选择支持的UniformGrid作为ItemsPanel。 UniformGrid将为每个元素分配相等的空间

<ListBox>
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Rows="1"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>

    <ListBox.ItemTemplate>
        <DataTemplate>
            <Label Content="{Binding}"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

例如

uniform