2012年8月2日木曜日

【Windows Metro プログラミング】アプリバーのボタンについて

Windows8のメトロUIで右クリックをすると上や下から表示されるかもしれないこのアプリバー.
実装的には必須ではないし,現に組み込まれていないアプリも多い.

そんなアプリバーのこのボタン.
ソースのどこを見てもこんな画像がない.
誰だよこいつって思いながら探しまくること幾星霜.

リソースファイル(Common/StandardStyles.xml)を見てみると


    <Style x:Key="MailAppBarButtonStyle" TargetType="Button" BasedOn="{StaticResource AppBarButtonStyle}">
        <Setter Property="AutomationProperties.AutomationId" Value="MailAppBarButton"/>
        <Setter Property="AutomationProperties.Name" Value="Mail"/>
        <Setter Property="Content" Value=""/>
    </Style>


こんなふうに書かれている.
ContentのValue値がなぜ□なんだろうと思っていたのだが,
実はこれは四角ではなく,トーフだった.
つまり文字化け.

特定のフォントにすれば実態を見ることができる.

その特定のフォントというのがSegoe UI Symbolというフォント.

つまりは,アプリバーの◯に囲まれた絵のようなボタンは
絵ではなく文字だった.

逆に言うと,そういう絵文字を使わなくとも
Value値を"あ"なんかにしたら◯に囲まれた"あ"がボタンになる.

Metro Styleでは◯に囲まれたアイコンがボタンという意味を持っているようだ.

VSでこの特殊文字を入力するためにわざわざMS-IMEに切り替えて
IMEパッドからキャラマップを表示させることになる.
私用領域のところにアプリバーで使われるようなアイコンが格納されている.

文字だとは思わなかったから10分ほど呆然としたよ.
Windows Phone開発者なら当然だったのかな?

知識ゼロから始めるとこんなものだね