右端のメニュー項目が画面に収まらない場合にどうしたいのかわかりません。それは...ですか?:
- それらを次の行に折り返す
- それらを完全に切り取る
- それらを部分的に切り取る
- それらをオーバーフロードロップダウンに入れますか?
- 楕円またはその他の「詳細」インジケータを表示しますか?
aのデフォルトItemsPanel
テンプレートは ... をMenu
使用WrapPanel
し、次の行に折り返す必要があります (メニューの高さを設定していない場合、またはメニューが目的の高さを許可していないコンテナー内にある場合を除きます)。
アイテムのレイアウト方法を変更するために使用される ItemsPanel を変更できます。
以下の XAML の例では、メニューを表示する 4 つの方法を示しています。これを Kaxaml 内で使用して、さまざまな動作を確認できます...ウィンドウのサイズを小さな幅に変更して、十分な水平スペースがない場合に何が起こるかを確認します。
- 元のメニュー スタイル...収まらないメニュー項目をラップします
- 収まらないメニュー項目を完全にトリミングするメニュー
- 収まらないメニュー項目を部分的にトリミングするメニュー
- ツールバーを使用するメニュー...収まらない項目はすべてオーバーフロー パネルに移動します
(この例は完全ではないことに注意してください...マウス/キーボードを使用した標準のメニュー選択動作に厳密に従っているわけではありません。アイテムごとに個別のメニューを使用しています...スタイルが少しずれています...そしてツールバーのグリッパーが表示されます....もっと作業が必要です)。
4 が必要なものに最も近い場合は、動作またはツールバーをオーバーフロー パネルと組み合わせる必要があります...メニューの動作と、メニュー項目間の追跡/ナビゲーションです。
メニューまたはツールバーを創造的に再テンプレート化するか、独自のカスタム コントロールを作成することで、それを実現できる場合があります。
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<StackPanel Orientation="Vertical">
<Menu>
<MenuItem Header="_File">
<MenuItem Header="_Exit"/>
</MenuItem>
<MenuItem Header="_Edit"/>
<MenuItem Header="_Window"/>
</Menu>
<Menu>
<Menu.ItemsPanel>
<ItemsPanelTemplate>
<ToolBarPanel IsItemsHost="True" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</Menu.ItemsPanel>
<MenuItem Header="_File">
<MenuItem Header="_Exit"/>
</MenuItem>
<MenuItem Header="_Edit"/>
<MenuItem Header="_Window"/>
</Menu>
<Menu>
<Menu.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel IsItemsHost="True" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</Menu.ItemsPanel>
<MenuItem Header="_File">
<MenuItem Header="_Exit"/>
</MenuItem>
<MenuItem Header="_Edit"/>
<MenuItem Header="_Window"/>
</Menu>
<ToolBar>
<ToolBar.Resources>
<Style x:Key="MenuItemStyle" TargetType="{x:Type MenuItem}">
<Style.Triggers>
<Trigger Property="Role" Value="TopLevelHeader">
<Setter Property="Template"
Value="{StaticResource {x:Static MenuItem.SubmenuHeaderTemplateKey}}"/>
</Trigger>
</Style.Triggers>
</Style>
</ToolBar.Resources>
<Menu>
<MenuItem Header="_File">
<MenuItem Header="_Exit"/>
</MenuItem>
</Menu>
<Menu>
<MenuItem Header="_Edit"/>
</Menu>
<Menu>
<MenuItem Header="_Window"/>
</Menu>
</ToolBar>
</StackPanel>
</Window>