WPF上下标

    xiaoxiao2023-11-06  165

    这里有个介绍的文章:定义显示的上标和下标 里面介绍了三种方法。 我之前有的是这个方法: Typography.Variants=“Superscript”,如下所示:

    <TextBlock ><Run FontSize="30" Text="g/cm"/><Run Text="3" Typography.Variants="Superscript"/></TextBlock>

    但实际情况是,在有的电脑上其能够很好的显示上标,但是在有些电脑上却不能显示为上标效果,成了一般的文字的效果。 分析了下,猜测(纯猜测,未验证)可能时由于上面的实现是基于字体的实现,不同电脑上对于字体的支持可能不一样。

    所以,参考上面的文章,改成了使用这个方法:BaselineAlignment=“Superscript”,如下图所示:

    <TextBlock ><Run FontSize="30" Text="g/cm"/><Run Text="3" BaselineAlignment="Superscript"/></TextBlock>

    这样做以后,实现了上标的效果,但是有几个问题: (1)上标的字体大小是与非上标的一致的,应该是受TextBlock 中字体大小的控制,与其是一致的; 解决方案:单独设置上标文字的大小。 (2)整个字体的宽度g/cm,与上标3,造成整个的高度比没有上标时文字要高; 这个还没有找到解决方案。 (3)由于我没有设置TextBlock 垂直方向的对齐,使用的默认的,造成字体整体下沉; 设置为垂直方向居中。

    改后如下所示:

    <TextBlock VerticalAlignment="Center" ><Run FontSize="30" Text="g/cm"/><Run Text="3" FontSize="20" BaselineAlignment="Superscript"/></TextBlock>

    对比下两种方案: 第一种方法不存在以上三种情况,直接解决。 第二种不算完美,但算解决了部分,记录下来,以后遇到解决方案再改进。 ps:上文中提到的直接的那个没试。

    最新回复(0)