9

特定の OpenType フォントを WPF (.NET 4.5 / VS2012 / Windows 8) で正しくレンダリングする方法を決定する方法がわかりません。「DINPro-BlackItalic」というフォントがコンピューターにインストールされています。

ファイル名: DINPro-BlackItalic.otf

Windows では、フォント名は次のように報告されます: DINPro-BlackItalic

DINPro-BlackItalic の Windows フォント プレビュー

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 設定のスクリーン ショットを次に示します。 WPF のいくつかの FontFamily 設定

2 つの質問:

1)このフォントをレンダリングするように WPF に指示する正しい方法を推測するにはどうすればよいですか? どこかに正規名が登録されている必要がありますが、ファイル名、ファイル プロパティ、または Windows がファイルを解析した後に報告するフォント名には表示されません。

2) さらに悪いことに、デスクトップ アプリケーションと Web で同じフォントをレンダリングしようとすると、Windows の Chromeや IE などのブラウザは「DINPro-BlackItalic」を想定し、スペースを空けたバージョンの名前をレンダリングしません。 . WPF と Windows ブラウザーは、フォントのインデックス作成に使用するフォント名について相互に排他的な決定を下しているようです。任意のフォントでこれを回避するにはどうすればよいですか?

Chrome および IE での DINPro フォントのレンダリング

4

4 に答える 4

7

アプリケーションにフォントを同梱し、プロジェクトディレクトリから参照することができます。プロジェクトの Fonts ディレクトリ内にフォントを配置するとします。

次のように追加できます。

<TextBlock FontFamily=”/Fonts/DINPro-BlackItalic.otf#DinPro-BlackItalic”/>

したがって、フォントがアプリケーションと共に展開されることを確認できます。

于 2013-10-01T04:44:39.647 に答える
0

WPFの場合、Textblockのフォント選択はデザイナで試した方が良い

ブラウザの場合、ラベルまたはその他の UI コントロールを表示して試すことができます。

于 2013-10-01T04:33:24.743 に答える