kazuakix の日記

Windows Phone とか好きです

Windows Phone 8.1 でフォントを埋め込む

Windows Phone 7 の頃から特定の文字列を表示するためにフォントを埋め込むという手法が使われてきました。

フォントを埋め込む方法には コンテンツとして埋め込む方法、リソースとして埋め込む方法の 2 種類があるようです。詳しくは以下を参照してください。

今回はコンテンツとしてフォントを埋め込む方法を紹介したいと思います。

 
まずは埋め込みたいフォントをプロジェクトに追加します。*1

f:id:kazuakix:20140907222235j:plain
 
追加したフォントのビルド アクションの項目を「コンテンツ」、出力ディレクトリにコピーの項目を「新しい場合はコピーする」にしておきます。

f:id:kazuakix:20140907222240j:plain,w400
 
こうする事で Blend 等で選択欄の一番上に追加したフォントが表示されるようになります。

f:id:kazuakix:20140907222244j:plain,w400

XAML はこんな感じになります。

<TextBlock FontFamily="Assets/msgothic.TTF#MS PGothic" />

ここでの注意点として FontFamily の指定を "Assets/~" ではなく "/Assets/~" としないと表示してくれない事がありました。というか今作っているプロジェクトがそうなります。それです。何が違うのかわからないのですが、指定したフォントが表示されない場合は一度試してみてください。
  
これを実際に表示させるとこんな感じになります。

f:id:kazuakix:20140907222248j:plain,w450

個人的には FontSize="16" LineHeight="18" LineStackingStrategy="BlockLineHeight" くらいがいいと思うのですが、このあたりは好みですね。
 
ちなみに MS P ゴシック で表示させるとこんな感じ。

f:id:kazuakix:20140907222253j:plain,w450

これが標準で組み込まれていれば...

*1:アプリを配布するつもりならフォントのライセンスを確認しておきましょう