How to set Japanese font on Silverlight 2 Beta 1:フォントを指定して日本語表示を行う時のポイント

English summary: This post introduces you to how to use Japanese font on Silverlight 2 Beta 1.
If you use Japanese characters in your Silverlight 2 apps, please do the following.

(1) To specify xml:lang property at any level in your XAML,
(2) To set the FontFamily property with Japanese font name in non-Japanese OS.
"MS Gothic" "MS PGothic" "MS UI Gothic" "MS Mincho" "MS PMincho" ”Meiryo"


 ここからは記事の本文で、日本語で書きます。

今日から、Silverlight 1.0しばりを解きます。

Silverlight 2で重要な機能として、アジア圏の言語サポートというのがあります。日本語・韓国語・中国語、それぞれ異なるフォントが存在する中で、きちんと画面を構築するにはどうしたらいいでしょうか。

この投稿では、Silverlight 2 Beta 1でフォントを指定して日本語表示を行う時のポイントを書きます。フォントを指定しなかった場合は、MS ゴシックが利用されるようになっていますが、FontFamilyプロパティでMS ゴシック以外のフォントを利用することもできます。

Silverlight 2 Beta 1におけるフォント指定による日本語表示のポイントは、次の通りです。

1. xml:lang="ja-JP"という記述をXAML中に含めます。
xml:langは、オブジェクト単位で個別指定もできますし、一番上位のオブジェクトに指定する簡単な方法もあります。

2. FontFamily="<フォントの名前>"で日本語のフォント名を指定する際に英語表記を使います。
日本語表示用のWindowsにおける主要なフォント名の英語表記は次の通りです。

“MS 明朝” → “MS Mincho”

“MS P明朝” → “MS PMincho”

“MS ゴシック” → “MS Gothic”

“MS Pゴシック” → “MS PGothic”

“メイリオ” → “Meiryo”  ※ 4/18追記、ただし、Silverlight 2 Beta 1では表示されないことに注意

XAMLの例1: TextBoxにxml:lang を指定した例

<UserControl

        xmlns="http://schemas.microsoft.com/client/2007"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        x:Class="sl2ea02.Page"

        Width="640" Height="480">

        <Grid x:Name="LayoutRoot" Background="White" >

                <TextBox xml:lang="ja-JP" Height="132.8" Margin="98,87,163,0" VerticalAlignment="Top" FontFamily="MS PMincho" Text="ここに日本語を書きます"/>

        </Grid>

</UserControl>

 

XAMLの例2: UserControlにxml:lang を指定した例

<UserControl

        xmlns="http://schemas.microsoft.com/client/2007"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        x:Class="sl2ea02.Page"

        Width="640" Height="480" xml:lang="ja-JP">

        <Grid x:Name="LayoutRoot" Background="White" >

                <TextBox Height="132.8" Margin="98,87,163,0"
VerticalAlignment="Top" FontFamily="MS Gothic" Text="ここに日本語を書きます"/>

        </Grid>

</UserControl>

・・・ 

これを応用すると、次のような画面が作れます。

※ 4/18追記:メイリオ部分は正しく表示されていないのが確認できると思います。

Siverlight 2 Japanese font support

皆さんもお試しください。