所有这些文本看起来都一样,但我试图让它们看起来不同。我想要小型大写字母。我在这里缺少什么来使小型大写字体效果起作用?
要重现这一点,请打开 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">
.. 你会得到 SmallCaps 和 AllSmallCaps,但不是 PetiteCaps 或 AllPetiteCaps。所以这取决于字体。但这引发了其他问题:
- 为什么默认字体(看起来很像 Times New Roman)不支持这些?
- 其他广泛使用的字体(例如本地 Courier New 等效字体)是否支持这些?
- 有哪些字体支持什么的列表吗?
- 多少百分比的字体会支持这一点——大多数、一些还是少数?
- 您能否在代码中确定字体支持的内容 - 如果是这种情况,我可以伪造 AllSmallCaps - 例如,将文本转换为所有大写字母并缩放 80%。但不是小型股。