如何将元素插入堆叠面板,它们从中心开始定位? 像这样:
| _ _ x _ _ |
| _ x x _ _ |
| _ x x x _ |
“x”是元素,“_”是空格。
是否已经实施了某些内容?
答案 0 :(得分:26)
您可以将元素包装在Grid
:
<Grid Width="720">
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal" Width="Auto" >
<!-- elements go here -->
</StackPanel>
</Grid>
在我看来,这是最简单的方法。 您还需要确保StackPanel的宽度=“自动”和网格的宽度=“720”(根据需要为某个固定值)。
答案 1 :(得分:1)
将元素包含在HorizontalAlignment
设置为Stretch
的元素中,例如:
<StackPanel>
<Border HorizontalAlignment="Stretch">
<TextBlock Text="something short" HorizontalAlignment="Center"/>
</Border>
<Border HorizontalAlignment="Stretch">
<TextBlock Text="something a bit longer" HorizontalAlignment="Center"/>
</Border>
<Border HorizontalAlignment="Stretch">
<TextBlock Text="something more than a bit longer" HorizontalAlignment="Center"/>
</Border>
</StackPanel>
答案 2 :(得分:0)
它取决于您添加到StackPanel的元素,但通常会查找以下内容:确保每个元素都将HorizontalAlignment设置为Stretch(因此它们跨越整个宽度),然后将HorizontalContentAlignment设置为中心。
答案 3 :(得分:0)
<StackPanel>
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
<!-- element x -->
</StackPanel>
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
<!-- element x -->
<!-- element x -->
</StackPanel>
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
<!-- element x -->
<!-- element x -->
<!-- element x -->
</StackPanel>
<StackPanel>
这会产生你给出的例子。