我在对齐两个不同大小且是邻居的标签时遇到问题。我必须将变量显示为大尺寸,将单位显示为小。但由于字体基线的位置不同,文本不在同一行。看看我的xaml:
<StackPanel VerticalAlignment="Bottom" Orientation="Horizontal">
<Label Content="5" FontSize="70" FontWeight="DemiBold" Foreground="White" Padding="0" Margin="0" BorderBrush="White" BorderThickness="1" />
<Label Content="s" FontSize="14" Foreground="White" Padding="0" Margin="0" BorderBrush="White" BorderThickness="1" VerticalAlignment="Bottom" />
</StackPanel>
我看到了这个问题的解决方案:我可以选择保证金或填充,但这不是一个好的决定。另外,我无法删除较大文本的上部间隙。可能存在更优雅的方式来解决这个问题。请告诉我这个,如果有人知道,或告诉我,这是不可能的,我会选择保证金或填充。我很长时间都在寻找解决方案。最相似的是:WPF: Aligning the base line of a Label and its TextBox 但是我的元素有不同的大小,这种方式对我不好。
感谢您的帮助!
答案 0 :(得分:2)
如果您不需要使用Label
,则可以使用Run
内的TextBlock
来实现基线对齐。
<TextBlock VerticalAlignment="Bottom">
<Run Text="5" FontSize="70" FontWeight="DemiBold" Foreground="White" />
<Run Text="s" FontSize="14" Foreground="White" />
</TextBlock>
答案 1 :(得分:0)
您应该使用该边距:
<StackPanel VerticalAlignment="Bottom" Orientation="Horizontal">
<Label Content="5" FontSize="70" FontWeight="DemiBold" Foreground="White" Padding="0" Margin="0" BorderBrush="White" BorderThickness="1" />
<Label Content="s" FontSize="14" Foreground="White" Padding="0" Margin="0 0 0 12" BorderBrush="White" BorderThickness="1" VerticalAlignment="Bottom" />
</StackPanel>