特定の OpenType フォントを WPF (.NET 4.5 / VS2012 / Windows 8) で正しくレンダリングする方法を決定する方法がわかりません。「DINPro-BlackItalic」というフォントがコンピューターにインストールされています。
ファイル名: DINPro-BlackItalic.otf
Windows では、フォント名は次のように報告されます: DINPro-BlackItalic
WPF では、次のような単純なことを行います。
<TextBlock Text="This is a sample sentence in DINPro-BlackItalic"
FontFamily="DinPro-BlackItalic" FontSize="24" />
またFontFamily="#DinPro-BlackItalic"
これは機能せず (明らかに斜体ではありません)、デフォルトのフォントに戻ります。私は、フォント ディレクトリ内の他のフォントで機能する他の多くのバリエーションを試しました。
たとえば、Comic Sans の作品: FontFamily="Comic Sans MS"
(すごい...)
さて、これが私が本当に混乱している理由です。フォント名を区切る別の方法を推測すると、正しくレンダリングされます!
これは機能します:FontFamily="Din Pro Black Italic"
要約すると、WPF のさまざまな FontFamily 設定のスクリーン ショットを次に示します。
2 つの質問:
1)このフォントをレンダリングするように WPF に指示する正しい方法を推測するにはどうすればよいですか? どこかに正規名が登録されている必要がありますが、ファイル名、ファイル プロパティ、または Windows がファイルを解析した後に報告するフォント名には表示されません。
2) さらに悪いことに、デスクトップ アプリケーションと Web で同じフォントをレンダリングしようとすると、Windows の Chromeや IE などのブラウザは「DINPro-BlackItalic」を想定し、スペースを空けたバージョンの名前をレンダリングしません。 . WPF と Windows ブラウザーは、フォントのインデックス作成に使用するフォント名について相互に排他的な決定を下しているようです。任意のフォントでこれを回避するにはどうすればよいですか?