これらのテキストはすべて同じように見えますが、私はそれらを異なって見せようとしています。スモールキャップスのテキストが必要です。スモールキャップスのタイポグラフィ効果を機能させるために、ここで何が欠けていますか?
これを再現するには、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%スケーリングします。しかし、SmallCapsではありません。