gpt4 book ai didi

wpf - WPF中超链接中的上标/下标

转载 作者:行者123 更新时间:2023-12-03 20:48:17 28 4
gpt4 key购买 nike

我正在尝试制作一个包含带有上标和/或下标的文本的超链接。我找到了两种方法来做到这一点,它们都很糟糕。
解决方案#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>


(source: excastle.com)


在 Palatino Linotype 中看起来很漂亮;但是对于不支持变体的字体,它只是被忽略,没有进行模拟,文本是全尺寸的,在基线处,100% 正常。我更愿意让我的最终用户选择他们想要使用的字体,并且仍然可以使用上标/下标。
解决方案#2:使用 BaselineAlignment .这会适本地升高或降低文本,但与解决方案 #1 不同,我必须手动减小字体大小。尽管如此,它对所有字体都有效。问题是超链接的下划线。
<TextBlock FontSize="30" FontFamily="Palatino Linotype">
<Hyperlink>
R<Run BaselineAlignment="Superscript" FontSize="12pt">2</Run>
</Hyperlink>
</TextBlock>



下划线随着文字上下起伏,看起来很猥琐。我宁愿在整个超链接下有一个连续的、不间断的下划线。 (在有人建议边框之前,我还希望超链接能够自动换行,所有单词都带有下划线,包括第一行。)
有没有办法让上标和下标在 WPF 中以任何字体工作,而不会在下划线时看起来很糟糕?

最佳答案

如果超链接不会换行多于一行,则嵌入另一个 TextBlock 可以工作:

<TextBlock FontSize="30" FontFamily="Palatino Linotype">
<Hyperlink>
<TextBlock>
R<Run BaselineAlignment="Superscript" FontSize="12pt">2</Run>
</TextBlock>
</Hyperlink>
</TextBlock>
这将在超链接的子项下提供一个实心超链接,这意味着一个完整的超链接:



但是,如果嵌入的 TextBlock 需要换行到多行,则整个换行段落下只会有一个下划线,而不是每一行文本下划线:


(source: excastle.com)


如果您只能将 TextBlock 放在需要上标的一小段内容周围——例如,在上面的例子中只放在 R^2 周围——并将其余文本作为超链接的父级,那么您会像往常一样得到下划线.但有时这不切实际,因此需要注意。

关于wpf - WPF中超链接中的上标/下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1252114/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com