WPFのMenuItemのRoleプロパティについて、どういったMenuItemがどのRoleになるのかの解説が(ざっと見た限り)なかったので、画像入りでメモ。
サンプル
MainWindow.xaml
<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" Title="MainWindow" Height="100" Width="200">
<Window.Resources>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding Role, RelativeSource={RelativeSource Self}}"/>
</Style>
</Window.Resources>
<Menu VerticalAlignment="Top">
<!--TopLevelHeader-->
<MenuItem>
<!--SubmenuHeader-->
<MenuItem>
<!--SubmenuItem-->
<MenuItem/>
</MenuItem>
<!--SubmenuItem-->
<MenuItem/>
</MenuItem>
<!--TopLevelItem-->
<MenuItem/>
</Menu>
</Window>
まとめると
- Menuの子要素であればTopLevel〇〇、そうでなければSubmenu〇〇
- 自身が子要素を持てば〇〇Header, 持たなければ〇〇Item
備考
通常だとTopLevelHeaderになる要素でも、IsCheckable = trueならばTopLevelItemになります。参考:MenuItem.cs