右对齐标签未到达右边框:
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<Label Content="Left Align" HorizontalAlignment="Left"/>
<Label Content="Right Align" HorizontalAlignment="Right" />
</StackPanel>
即使我已指定HorizontalAlignment =“Stretch”,似乎两个标签都没有占用完整的可用宽度。它的原因是什么?
答案 0 :(得分:0)
您应该使用DockPanel
代替StackPanel
。
另请参阅Align items in a stack panel?或
<DockPanel LastChildFill="False">
<Label Content="Left Align" DockPanel.Dock="Left"/>
<Label Content="Right Align" DockPanel.Dock="Right" />
</DockPanel>
并且@santosc描述了here为什么与StackPanel的对齐无法按预期工作:
一个堆叠板,无论你如何伸展它,都会在周围坍塌 儿童。你不能让它长得更多。
答案 1 :(得分:0)
如果没有提供宽度,StackPanel
会缩小以适合内容。
使用DockPanel
,如Stephan Bauer所说,或者可能是Grid
。
答案 2 :(得分:0)
试一试:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="Left Align" />
<Label Grid.Column="2" Content="Right Align" />
</Grid>