我有一个水平的列表箱与3个可装订的项目。我怎样才能把它们伸展到列表框的所有宽度?例如,第一个元素在左边,第二个元素在中间,第三个元素在右边。现在我把它们与边距对齐,但我很感兴趣,有没有可能没有边距?我试图将ListBox property HorizontalContentAlignment设置为,但没有得到我想要的。
谢谢。
我尝试过你的建议,但不幸的是没有得到理想的结果。我的XAML:
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBoxItem Content="1"/>
<ListBoxItem Content="2"/>
<ListBoxItem Content="3"/>
</ListBox>我得到的是:

我想要的是:

发布于 2013-02-27 13:09:51
尝试采用以下方法:
<ListBox Grid.Row="1">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBoxItem HorizontalAlignment="Stretch">
<Grid>
<TextBlock Text="1" HorizontalAlignment="Left"/>
<TextBlock Text="2" HorizontalAlignment="Center"/>
<TextBlock Text="3" HorizontalAlignment="Right"/>
</Grid>
</ListBoxItem>
</ListBox>发布于 2013-02-26 10:03:22
这是一个棘手的问题:)要做到这一点,您需要更改ListBox.ItemContainerStyle,查看MSDN论坛的答案。此外,请查看本网站上的下列链接:
发布于 2013-03-15 01:31:21
我不确定你是否找到了一个解决方案,但这对我来说是有效的,使项目的间隔均匀:
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBoxItem Content="Item1"/>
<ListBoxItem Content="Item2"/>
<ListBoxItem Content="Item3"/>
</ListBox>发现地点:https://stackoverflow.com/a/1270813/124721
然后,在ItemContainerStyle中进行混合,我可以以内容为中心:
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>然而,我仍然无法得到一个项目对齐左,然后另一个到中心,最后一个到右边。直接应用对项的对齐方式会缩小面板的大小。但是,如果它被包装在另一个容器中,就像一个堆栈面板那样可以工作的话。
https://stackoverflow.com/questions/15085291
复制相似问题