アプリバーとフライアウト (3/5)
作成:2014-02-22 11:07
更新:2014-02-22 11:07
更新:2014-02-22 11:07
■メニューのフライアウト
アプリバーでは、表示できるアイコンの数には限りがあります。横幅に並びきれるだけですから、何十個ものアイコンを並べるわけにはいきませんね。まぁ、複数行に並べることもできますが、あまりたくさん並べてしまうと、「アイコンでシンプルにわかりやすく」まとめる意味がなくなってしまうでしょう。
多数の機能を実装したい場合には、アプリバーをクリックしたらメニューが現れ、そこで必要な処理を選択する、というようにするのが一般的です。
必要に応じてポップアップして現れるUIを、Windows 8では「フライアウト」といいます。まずはフライアウトの基本ともいえる「メニューフライアウト」を使ってみましょう。
メニューフライアウトは、<MenuFlyout>というタグを使って作成します。これは、<AppBarButton>タグの中に<AppBarButton.Flyout>というタグを用意し、その中に記述します。整理するとこんな感じです。
<MenuFlyoutItem Text="メニュー名" />――これが通常のメニュー項目です。Textにメニューの名前を指定するだけです。
<ToggleMenuFlyoutItem Text="メニュー名" />――これは、選択するとチェックをON/OFFするメニュー項目です。
<MenuFlyoutSeparator />――これはメニューのセパレータです。区切りを表示するのに使います。
これらを記述することでメニュー項目を作成できます。メニュー選択時の処理は、Buttonなどと同様、Click属性にメソッド名を指定することで用意できます。
では、先ほどのサンプルを書き換え、1つ目のボタンをクリックしたらメニューをフライアウトするようにしてみましょう。下のリスト欄にコードを掲載しておきました。アプリバーの「Button 1」をクリックすると、「menu 1」「menu 2」という項目を持つメニューがその下に表示されます。
多数の機能を実装したい場合には、アプリバーをクリックしたらメニューが現れ、そこで必要な処理を選択する、というようにするのが一般的です。
必要に応じてポップアップして現れるUIを、Windows 8では「フライアウト」といいます。まずはフライアウトの基本ともいえる「メニューフライアウト」を使ってみましょう。
メニューフライアウトは、<MenuFlyout>というタグを使って作成します。これは、<AppBarButton>タグの中に<AppBarButton.Flyout>というタグを用意し、その中に記述します。整理するとこんな感じです。
<AppBarButton Label="ラベル">これで、アプリバーのそのボタンをクリックすると自動的にメニューがポップアップして現れるフライアウトが作成できます。
<AppBarButton.Icon>
<SymbolIcon Symbol="アイコン" />
</AppBarButton.Icon>
<AppBarButton.Flyout>
<MenuFlyout>
……ここにメニュー項目を用意する……
</MenuFlyout>
</AppBarButton.Flyout>
</AppBarButton>
■メニュー項目について
<MenuFlyout>タグ内に記述するメニュー項目にはいくつかの種類があります。以下に主なものを整理しておきましょう。<MenuFlyoutItem Text="メニュー名" />――これが通常のメニュー項目です。Textにメニューの名前を指定するだけです。
<ToggleMenuFlyoutItem Text="メニュー名" />――これは、選択するとチェックをON/OFFするメニュー項目です。
<MenuFlyoutSeparator />――これはメニューのセパレータです。区切りを表示するのに使います。
これらを記述することでメニュー項目を作成できます。メニュー選択時の処理は、Buttonなどと同様、Click属性にメソッド名を指定することで用意できます。
では、先ほどのサンプルを書き換え、1つ目のボタンをクリックしたらメニューをフライアウトするようにしてみましょう。下のリスト欄にコードを掲載しておきました。アプリバーの「Button 1」をクリックすると、「menu 1」「menu 2」という項目を持つメニューがその下に表示されます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<AppBar Background="#33ff00ff" > <Grid> <StackPanel Orientation="Horizontal"> <AppBarButton Label="Button1"> <AppBarButton.Icon> <SymbolIcon Symbol="Emoji" /> </AppBarButton.Icon> <AppBarButton.Flyout> <MenuFlyout> <MenuFlyoutItem Text="menu 1" /> <ToggleMenuFlyoutItem Text="menu 2" /> </MenuFlyout> </AppBarButton.Flyout> </AppBarButton> <AppBarButton Label="Button2"> <AppBarButton.Icon> <SymbolIcon Symbol="Help" /> </AppBarButton.Icon> </AppBarButton> </StackPanel> </Grid> </AppBar>
※関連コンテンツ