ハンバーガーメニューでは、メニュー部分とコンテンツページ部分とに分かれていることがわかります。
ハンバーガーメニューではボタン押すと左側からヌルッとメニューが表示されますが、これを実現するにはSplitViewコントロールを使用するのが最適です。
SplitViewは2つのビューを持ち、1つはPane、もう1つはContentです。
Paneにはメニューを置き、Contentにはメニューに対応づけたコンテンツを表示します。
SplitViewの機能を確認するために、MainPage.xaml にSplitViewを配置し、Xamlを以下のように編集します。
Pane部分がどこの範囲かをわかるように背景色をグレー(#33000000)にしています。
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<SplitView x:Name="splitView"
CompactPaneLength="0"
OpenPaneLength="320"
IsPaneOpen="True" DisplayMode="Inline"
PaneBackground="#33000000">
<SplitView.Pane>
<Grid>
<TextBlock Text="Pane" />
</Grid>
</SplitView.Pane>
<SplitView.Content>
<Grid>
<TextBlock Text="Content" />
</Grid>
</SplitView.Content>
</SplitView>
</Grid>
上記の実行結果は以下の通りです。
Paneは左側に、Content部分は右側に表示されていることがわかります。
ここでSplitViewコントロールで使用した各種プロパティについて見ていきましょう。
| プロパティ | 説明 |
| CompactPaneLength | Paneエリアの最小幅。 |
| OpenPaneLength | Paneを開いたときの幅 |
| IsPaneOpen | Paneを開くかどうか。Trueで開き、Falseで閉じる。配置したメニューを表示する場合はTrueにします。 |
| DisplayMode | 後述 |
| PaneBackground | Paneの背景色 |
DisplayModeについて
DisplayMode は Pane と Content をどのように表示するかの設定です。
以下表の通り4種類あります。
| 値 | 説明 |
| Overlay | Contentの上にPaneが表示される |
| Inline | Paneの横にContentが表示される |
| CompactOverlay | IsPaneOpenをFalseにしても、少しだけPane部分が見える(CompactPaneLengthで指定した分のみ)。Contentの上にPaneが表示される。 |
| CompactInline | IsPaneOpenをFalseにしても、少しだけPane部分が見える(CompactPaneLengthで指定した分のみ)。Paneの横にContentが表示される。 |
ハンバーガーメニューのあるアプリでよく使用されるのは Overlay か CompactOverlayのようです。
自作するアプリに合わせて設定されることをおすすめします。
ハンバーガーメニューの関連Tips
Please follow and like us:



コメント