要重现此过程,请打开Visual Studio 2008,执行文件|新建项目,创建一个新的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>   
  
  
   根据第一个答案,如果你指定了一种特定的字体,你似乎可以找到某个地方。将FlowDocument开始标记更改为:
  
     <FlowDocument FontFamily="Palatino Linotype">
  
  
  
   - 
    为什么默认字体(看起来很像Times New Roman)不支持这些?
   
- 
   
- 
   
- 
    支持此功能的字体百分比是多少?是大多数、部分还是少数?
   
- 
    你能在代码中确定字体支持什么吗?如果是这样的话,我可以伪造AllSmallCaps,例如将文本转换为所有大写字母并缩放80%。但不是SmallCaps。