这里有个介绍的文章:定义显示的上标和下标
里面介绍了三种方法。
我之前有的是这个方法: 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:上文中提到的直接的那个没试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)