6

これらのテキストはすべて同じように見えますが、私はそれらを異なって見せようとしています。スモールキャップスのテキストが必要です。スモールキャップスのタイポグラフィ効果を機能させるために、ここで何が欠けていますか?

これを再現するには、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ではありません。
4

2 に答える 2

9

これは、特定の OpenType フォントでのみ機能します。ヘルプの例では、Open Type サンプルにある Pescadero を使用しています。それでも、SmallCaps と AllSmallCaps のみがサポートされます。

于 2009-03-12T14:31:00.717 に答える
4

「太字」のフォントウェイトを持つデフォルトのフォントは、SmallCaps を適切にレンダリングすることに気付きました。

<StackPanel>
    <TextBlock Typography.Capitals="SmallCaps" FontFamily="Pescadero" Padding="2">2pm</TextBlock>
    <TextBlock Typography.Capitals="SmallCaps" FontWeight="Bold" Padding="2">2pm</TextBlock>
</StackPanel>
于 2012-05-16T03:51:30.353 に答える