我试图制作一个超链接,其中包含超文本和/或下标文本。我发现有两种方法可以做到这一点,并且他们都吸吮。WPF超链接中的上标/下标
解决方案#1:使用Typography.Variants。这为一些字体提供了一个了不起的上标。
<StackPanel>
<TextBlock FontFamily="Palatino Linotype" FontSize="30">
<Hyperlink>R<Run Typography.Variants="Superscript">2</Run></Hyperlink>
(Palatino Linotype)
</TextBlock>
<TextBlock FontFamily="Segoe UI" FontSize="30">
<Hyperlink>R<Run Typography.Variants="Superscript">2</Run></Hyperlink>
(Segoe UI)
</TextBlock>
</StackPanel>
http://www.excastle.com/misc/wpf-superscript-fontvariants.png
在帕拉蒂诺莱诺看上去很美;但对于不支持变体的字体,它会被忽略,不会进行仿真,并且文本是全尺寸,基线为100%正常。我宁愿让我的最终用户选择他们想使用的字体,并仍然有超级/下标工作。
解决方案#2:使用BaselineAlignment。这会适当地提高或降低文本,但与解决方案#1不同,我必须手动减小字体大小。不过,它对所有字体都很有效。问题是超链接的下划线。
<TextBlock FontSize="30" FontFamily="Palatino Linotype">
<Hyperlink>
R<Run BaselineAlignment="Superscript" FontSize="12pt">2</Run>
</Hyperlink>
</TextBlock>
http://www.excastle.com/misc/wpf-superscript-baselinealignment.png
下划线升高,并与文字,这看起来很猥琐一起下降。我宁愿在整个超链接下连续不间断地加下划线。 (并且在任何人建议边框之前,我还希望超链接能够进行自动换行,包括第一行在内的所有文字都加下划线。)
是否有任何方法可以使上标和下标起作用在WPF中,以任何字体,在强调时没有看起来可笑的不好?