对齐时,控件不会到达右边框

时间:2012-07-19 11:48:37

标签: wpf alignment

右对齐标签未到达右边框:

<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
    <Label Content="Left Align" HorizontalAlignment="Left"/>
    <Label Content="Right Align" HorizontalAlignment="Right" />
</StackPanel>

即使我已指定Horizo​​ntalAlignment =“Stretch”,似乎两个标签都没有占用完整的可用宽度。它的原因是什么?

enter image description here

3 个答案:

答案 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>