要重现此过程,请打开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。