Это - дополнительный оператор, Вот статья, к которой я часто обращаюсь для побитовых операторов
http://www.blackwasp.co.uk/CSharpLogicalBitwiseOps.aspx
, Также MSDN использует его в их статье перечислений, которая демонстрирует, что это использует лучше
Для подменю вы можете добавить любое количество элементов меню, вложенных внутрь.
<Menu>
<MenuItem Header="File">
<MenuItem Header="Open"/>
<MenuItem Header="Close"/>
</MenuItem>
<MenuItem Header="Edit">
<MenuItem Header="Copy"/>
<MenuItem Header="Paste"/>
</MenuItem>
<MenuItem Header="Options"/>
Просто переопределите ItemsPanel
:
<Menu>
<Menu.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</Menu.ItemsPanel>
<MenuItem Header="Foo"/>
<MenuItem Header="Bar"/>
<MenuItem Header="Baz"/>
...
</Menu>
Обратите внимание, что это не избавит от эффекта вертикального градиента в меню Vista / Win7. Если вы этого хотите, установите для свойства Menu.Background
любое значение (может даже быть Transparent
).