しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

Silverlight と日本語

TextBlock で日本語を使うために、フォントをダウンロードして使う方法を試してみました。Downloader クラスを使います。

Downloader downloader = new Downloader();
downloader.Completed += EventHandler(Downloader_Completed);
downloader.Open("get", new Uri("ipag.ttf"));
downloader.Send();

見ただけでわかると思いますが、Open でダウンロードするファイルを指定して Send でダウンロードを開始します。ダウンロードが完了したら、Completed イベントが実行されます。イベントは

private void Downloader_Completed(object sender, EventArgs e)
{
    textBlock.SetFontSource(sender as Downloader);
    textBlock.FontFamily = "IPAGothic";
}

TextBlock.SetFontSource で Downloader を突っ込めば、ダウンロードしたフォントを指定することができます。ここでは IPA ゴシックをダウンロードしたので、IPAGothic を指定しています。
Downloader を使えば、事前に背景画像などをダウンロードしておくことができるのかもしれません。今日はそこまで突っ込むことはやめておきます。
追記
事前ダウンロードは出来るみたいです。画像などを非同期で読み込んでおくことで、呼び出し時のオーバーヘッドを低減できるので便利かもしれません。