酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows Phone 7での任意のフォントを埋め込む方法について

@kazuaki が日本語メニューで……と呟いていたので、落ちるの前提でversion0.1ってことで申請出してみましょう!と言ってたんだけど、全面日本語メニューで本当に審査に通るとは……うちのBaseball Japanでも取り込んでみよう(ひどい)。


少し話題になっているWindows Phone 7でのフォント埋め込みについて紹介しましょう。フォントを格納するfontsフォルダを作って、表示に使用したいフォントファイル(ここではTanukiMagic.ttfを使用します)を追加します。

Build Actionには「Resource」を指定します。

フォントを変更したいTextBlockのFontFamilyプロパティへリソースが格納されている場所とフォント名を指定します。下記のような指定をします。

FontFamily=”/CustomFontTest;component/fonts/{フォントのファイル名}#{フォントの名前}”

Visual Studio上でどのように設定するかについては下記の表記が参考になると思います。

今回のサンプルプロジェクトで使った、フォントを変更したTextBlockのXAMLは以下の通りです。

        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <TextBlock FontSize="40" Name="textBlock2" Text="あかさたな。こんばんは酢酸です。日本海とか海って文字は特徴でやすいですね。" 
                TextWrapping="Wrap" VerticalAlignment="Top" Width="389" 
                FontFamily="/CustomFontTest;component/fonts/TanukiMagic.ttf#Tanuki Permanent Marker" />
        </Grid>

ふたつTextBlockを配置しており、そのうち下のほうのFontFamilyを変更しています。

このサンプルの紹介には、@Tanukizamuraiのたぬき油性マジックを使わせていただきました。フォントのダウンロードは、こちらからどうぞ。