在XAML中垂直对齐标签和文本块的顶部

10

我如何垂直对齐LabelTextBlock,使它们的第一行文本对齐并位于Top位置?

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition />
    </Grid.RowDefinitions>
    <Label Grid.Column="0" VerticalAlignment="Top">Some Label:</Label>
    <TextBlock Grid.Column="0" VerticalAlignment="Top">Some text<TextBlock>
</Grid>

以上代码给了我这个:

标签和文本块文本垂直不对齐 http://img156.imageshack.us/img156/4940/labeltextblock.png


这个问题的代码相当有问题。Label和TextBlock都在第0列,第0行,并且彼此重叠。TextBlock的“closing”标记实际上是第二个TextBlock“opening”标记,因此我猜测代码不是从一个可工作的示例中复制而来。(这个旧问题的图像也已经损坏。)测试于2021年7月17日。 - Andrew D. Bond
编辑队列已满,但问题代码已更正: B - Andrew D. Bond
3个回答

21

标签周围的额外空间来自 Padding 属性。要删除该空间,您可以直接在 Label 上明确设置 Padding 属性为 "0",或者通过样式设置。


6
默认情况下,Label的填充值为5,而TextBlock的填充值为0。谢谢你的提问。 - sourcenouveau
当两个控件的字体大小不同时,问题就开始了。 - Shimmy Weitzhandler
1
感谢您向我揭示了 WPF 的一个奥秘。 - PRINCESS FLUFF

1
<TextBlock>
<InlineUIContainer BaselineAlignment="Top"><Label Content="Label"/></InlineUIContainer>
<InlineUIContainer BaselineAlignment="Top"><TextBlock>TextBlock Content</TextBlock>                 </InlineUIContainer>
</TextBlock>

HTH.


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接