在特定文本上方显示文本

Display text above specific text

我想在特定文字上方显示文字,看起来完全像这样。

如您所见,在 学校(称为汉字) 下显示了 がっこう(称为注音假名)。
我确切地知道什么字符上面应该有注音假名。

问题是我该怎么办?我以为我可以将 \n 与 2 Label 一起使用,但是还有其他方法可以显示这样的内容吗?

Edit 我提到的文本是推文提要和我使用的分析器将其解析为词素节点,这就是为什么我询问如何在特定文本上方显示文本。

WPF 支持许多 OpenType Font Features but Ruby isn't rendered properly, even though it is available through the Typography.Variants 属性:

<TextBlock>
<Span>
    学校<Run Typography.Variants="Ruby">がっこう</Run>
</Span>

这不会显示 ruby 个字符。我还没有找到任何(有效的)示例来说明如何使用 "Ruby"。

一种解决方法(实际上是 hack)是像您尝试的那样使用换行符。这是通过使用 <LineBreak/> 标签完成的:

    <TextBlock >
        <Span FontFamily="Meiryo">  
            <Run FontSize="8">えみこ</Run><LineBreak/>恵美子
        </Span>
    </TextBlock>

您可以将此 TextBlock 放入 StackPanel 以将其包含在段落中:

    <TextBlock>
        <Span FontFamily="Meiryo" >  This is my normal text
            <StackPanel >
                <TextBlock >
                    <Span>
                        <Run FontSize="8">えみこ</Run><LineBreak/>恵美子
                    </Span>
                </TextBlock>
            </StackPanel>
            and this is the rest of the text
        </Span>
    </TextBlock>

结果将类似于以下代码段:

 This is my normal text
<ruby>
<rb>恵美子</rb><rp>(</rp>
<rt>えみこ</rt><rp>)</rp>
</ruby>
and this is the rest of the text

标记不漂亮,您必须 fiddle 使用偏移量才能使堆栈面板的底部正确对齐