элементы подменю в меню WPF

как сделать так, чтобы пункты SUBMENU отображались вертикально как левая навигация в CODEGURU.COM

В окнах мы используем свойство layoutstyle, чтобы все основные и дочерние элементы отображались вертикально, и закрепляли полосу меню слева.

Как добиться этого в WPF


person Community    schedule 30.07.2009    source источник


Ответы (2)


Для подменю вы можете добавить столько MenuItem, вложенных внутрь.

<Menu>
  <MenuItem Header="File">
     <MenuItem Header="Open"/>
     <MenuItem Header="Close"/>
  </MenuItem>
  <MenuItem Header="Edit">
     <MenuItem Header="Copy"/>
     <MenuItem Header="Paste"/>
  </MenuItem>
  <MenuItem Header="Options"/>
person Jobi Joy    schedule 30.07.2009

Просто переопределите 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).

person Pavel Minaev    schedule 30.07.2009