WPF上下标

这里有个介绍的文章:定义显示的上标和下标
里面介绍了三种方法。
我之前有的是这个方法: 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:上文中提到的直接的那个没试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值