WPF/XAML:Typography.Capitals似乎没有任何效果

Ant*_*ony 6 wpf xaml flowdocument smallcaps

所有这些文本看起来都一样,但我试图让它们看起来不同.我想要小帽子文字.我在这里错过了什么让小帽子排版效果起作用?

要重现这一点,请打开Visual Studio 2008,Do File | New Project,创建一个新的Windows | WPF应用程序,将下面的标记粘贴到Window1.xaml中,然后运行它.

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <FlowDocumentReader>
        <FlowDocument>
            <Paragraph>
                <Run>Some text</Run> <LineBreak />
                <Run Typography.Capitals="SmallCaps">Some text</Run> <LineBreak />
                <Run Typography.Capitals="AllSmallCaps">Some text</Run> <LineBreak />
                <Run Typography.Capitals="PetiteCaps">Some text</Run> <LineBreak />
                <Run Typography.Capitals="AllPetiteCaps">Some text</Run> <LineBreak />
            </Paragraph>
        </FlowDocument>
        </FlowDocumentReader>
    </Grid>
</Window>   
Run Code Online (Sandbox Code Playgroud)

根据第一个答案,似乎如果你指定一个特定的字体,你可以到达某个地方.将FlowDocument开始标记更改为:

   <FlowDocument FontFamily="Palatino Linotype">
Run Code Online (Sandbox Code Playgroud)

..你得到SmallCaps和AllSmallCaps,但不是PetiteCaps或AllPetiteCaps.所以它取决于字体.但这引起了其他问题:

  • 为什么默认字体(看起来很像Times New Roman)不支持这些?
  • 其他广泛使用的字体(例如本地Courier New等价物)是否支持这些?
  • 是否有哪些字体支持的列表?
  • 有多少百分比的字体会支持这种情况 - 大多数,有些还是少数?
  • 你能否在代码中确定字体支持的内容 - 如果是这种情况,我可以伪造AllSmallCaps - 例如通过将文本转换为所有大写并缩放80%.但不是SmallCaps.

ama*_*aca 8

这仅适用于特定的OpenType字体 - 帮助中的示例使用Pescadero,它位于Open Type Sample中.即使这样,也只支持SmallCaps和AllSmallCaps.