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