相关疑难解决方法(0)

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>
Run Code Online (Sandbox Code Playgroud)

http://www.excastle.com/misc/wpf-superscript-fontvariants.png

Palatino Linotype看起来很漂亮; 但对于不支持变体的字体,它只是被忽略,没有进行仿真,文本是全尺寸,基线,100%正常.我希望允许我的最终用户选择他们想要使用的字体,并且仍然有超级/下标工作.

解决方案#2:使用BaselineAlignment.这会适当地提高或降低文本,但与解决方案#1不同,我必须手动减小字体大小.不过,它对所有字体都有效.问题是Hyperlink的下划线.

<TextBlock FontSize="30" FontFamily="Palatino Linotype">
  <Hyperlink>
    R<Run BaselineAlignment="Superscript" FontSize="12pt">2</Run>
  </Hyperlink>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

http://www.excastle.com/misc/wpf-superscript-baselinealignment.png

下划线随着文字一起升高和降低,看起来非常可怜.我宁愿在整个超链接下有一个连续的,不间断的下划线.(在任何人建议使用Border之前,我也希望Hyperlink能够自动换行,所有单词都加下划线,包括第一行.)

是否有任何方法可以在任何字体中使用WPF中的上标和下标,而在下划线时看起来不那么可笑?

wpf fonts xaml

15
推荐指数
1
解决办法
6826
查看次数

标签 统计

fonts ×1

wpf ×1

xaml ×1