Xamarin Forms将不同字体大小的标签垂直对齐到同一基线

问题描述 投票:1回答:1

我在水平方向的堆栈布局中并排放置两个标签。标签具有不同的字体大小。无论字体大小如何,我都希望使每个标签文本的基线(底部边缘)相同。但是,xamarin表单的默认行为不是这样做。以下代码

    <StackLayout Orientation="Horizontal" >
            <Label  FontSize="12" Text="A Noble Spirit"></Label>
            <Label  FontSize="18" Text="Embiggens The Smallest Man"></Label>
    </StackLayout>

导致以下视图在android上运行。

Figure 1, different baseline for labels of different font size

我尝试了在标签上设置垂直文本对齐方式和垂直选项属性的许多不同组合。我能想到的最好的方法(以及我认为应该起作用的方法)是添加垂直选项=结束它们两个。这样可以改善一些情况,但是仍然存在不匹配的情况,因此较大标签的文本(embiggens)的起始位置要比较小标签的文本高-像这样:

    <StackLayout Orientation="Horizontal" >
            <Label VerticalOptions="End" FontSize="12" Text="A Noble Spirit"></Label>
            <Label VerticalOptions="End" FontSize="18" Text="Embiggens The Smallest Man"></Label>
    </StackLayout>

Figure, good but not great

如您所见,虽然有所改进,但仍不统一。这有点把我推高了。我开始认为这可能是Android Xamarin Forms中的错误。 (稍后,当我可以在iOS上运行示例以查看其是否特定于Android时,将添加到该问题。)>

我可以通过在较小的标签上增加等于字体大小差异的上边距来破解它的工作,这是很重要的,我不想引入技术上的负担并维护我的系统。但这是为了证明这一点。希望不必求助于此...

    <StackLayout Orientation="Horizontal" >
            <Label FontSize="12" Margin="0,6,0,0" Text="A Noble Spirit"></Label>
            <Label FontSize="18" Text="Embiggens The Smallest Man"></Label>
    </StackLayout>

Figure 3, Hacky Sack

我在水平方向的堆栈布局中并排放置两个标签。标签具有不同的字体大小。我想使每个标签文本的基线(底部边缘)相同,而不管...

xamarin xamarin.forms xamarin.android vertical-alignment
1个回答
0
投票

原因:

© www.soinside.com 2019 - 2024. All rights reserved.