#wp7dev_jp

Windows Phone はOSとしてフォントを拡張することはできません。しかしSilverlightアプリケーションはアプリケーションの中にフォントを含めて利用することはできます。効率は悪いですが、自分のアプリでぜひ試したいというのであれば、選択肢として考えてみるのもいいでしょう。

ただ、ライセンス上で問題がある場合があるのでそこは注意です。今回はフリーのライセンスフォント Migu 1Cを試してみました。埋め込んで配布の際には、IPAフォントライセンスに従い、例えばIPAフォントライセンスAgreementなどをアプリの中で表示できるようにする必要があります(ヘルプなど)フォントサイズは約3.2MB。大きな画像ファイルと思えば気になるサイズでもない。32GBのIS12Tにはどうって事ないサイズ。

ちなみに、英語フォントなら種類も山ほどあるので、うまく使えるかも。

さて、本題。

フォントはプロジェクトに追加して、コンパイルオプションをResourceとします。コードからの利用方法はこんな感じ。(本ではp397の19.12)

            <ListBox Name="listBox1" FontSize="28" FontFamily="/PhoneApp36;component/fonts/migu-1c-regular.ttf#Migu 1C"/>

Yu Gothic を使うならこう変えればいい。

<ListBox Name="listBox1" FontSize="28" FontFamily="Yu Gothic"/>

コードから動的に変える場合も同じ。FontFamily で指定する。

            listBox1.FontFamily = new FontFamily("/PhoneApp36;component/fonts/migu-1c-regular.ttf#Migu 1C");

もしくは、

            listBox1.FontFamily = new FontFamily("Yu Gothic");

見た感じはこうだ。左が、Migu 1C。右が YuGothic。

Screen Capture (3)Screen Capture (4)

下が黒。前も言ったことがあるが、文字を読むなら白背景のほうが見やすいと思う。

Screen Capture (6)Screen Capture (8)

デザインによるアプローチもあるがこういった、フォントによるアプローチというのもありかと。Yu Gothic, Meiryo UI、そして追加したフォントの切り替えはそれほど難しくはないので、ユーザーの選択肢として機能を付けてみるのもいいかもしれない。