2016-11-16 32 views
0

我在我的應用程序中有一個菜單,它由少數MenuItem組成。我想在所有MenuItems的左側有一個垂直標籤。像這樣的(當然,灰色的背景,原諒我的油漆技能): wanted outputMenuItem中所有子菜單上的垂直旋轉標籤

我試着這樣說:

<Menu IsMainMenu="True" Grid.Row="0" Grid.ColumnSpan="3"> 
     <MenuItem Header="_File"> 
      <TextBlock Text="Type1" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0,0"> 
       <TextBlock.LayoutTransform> 
        <RotateTransform Angle="-90"/> 
       </TextBlock.LayoutTransform> 
      </TextBlock> 
      <MenuItem Header="_Open" Command="{Binding OpenFileCommand}" IsEnabled="{Binding CanOpenFile}"/> 
      <Separator/> 
      <MenuItem Header="_Save" Command="{Binding SaveFileCommand}"/> 
      <MenuItem Header="_Save As" Command="{Binding SaveAsFileCommand}"/> 
      <Separator/> 
      <MenuItem Header="_Exit" Command="{Binding ExitAppCommand}"/> 
     </MenuItem> 
    </Menu> 

但它會產生這樣的輸出:

Label menuItem output

然後我嘗試通過背景圖片(透明只是純文本):

<Menu IsMainMenu="True" Grid.Row="0" Grid.ColumnSpan="3"> 
     <MenuItem Header="_File"> 
      <MenuItem.Background> 
       <ImageBrush ImageSource="{Binding SelectedObjectResourcePath}"/> 
      </MenuItem.Background> 
      <MenuItem Header="_Open" Command="{Binding OpenFileCommand}" IsEnabled="{Binding CanOpenFile}"/> 
      <Separator/> 
      <MenuItem Header="_Save" Command="{Binding SaveFileCommand}"/> 
      <MenuItem Header="_Save As" Command="{Binding SaveAsFileCommand}"/> 
      <Separator/> 
      <MenuItem Header="_Exit" Command="{Binding ExitAppCommand}"/> 
     </MenuItem> 
    </Menu> 

但它設置爲僅第一菜單項的背景: background imageBrush

+0

我會看的第一件事是創建一個樣式或修改樣式來做到這一點。你是否在使用任何風格,是否創建了它們? – Joe

+0

@Joe嘿,是的,在我的項目中有預製的樣式,但它很長。但可能會有罪魁禍首。 – n0win0u

回答

1

使用的StackPanel(與水平方向),這裏是我認爲最好的解決方案。看一下這個。你只需要使它看起來一樣好,你想:)

<Menu IsMainMenu="True" Grid.Row="0"> 
      <MenuItem Header="_File"> 
       <StackPanel Orientation="Horizontal"> 
        <Label Content="Type1" Margin="-30" HorizontalContentAlignment="Center"> 
         <Label.LayoutTransform> 
          <RotateTransform Angle="-90"/> 
         </Label.LayoutTransform> 
        </Label> 
        <StackPanel> 
         <MenuItem Header="_Open" Command="{Binding OpenFileCommand}" IsEnabled="{Binding CanOpenFile}"/> 
         <Separator/> 
         <MenuItem Header="_Save" Command="{Binding SaveFileCommand}"/> 
         <MenuItem Header="_Save As" Command="{Binding SaveAsFileCommand}"/> 
         <Separator/> 
         <MenuItem Header="_Exit" Command="{Binding ExitAppCommand}"/> 
        </StackPanel> 
       </StackPanel> 
      </MenuItem> 
     </Menu> 
+0

是的,我也想到了這一點,但問題是,只有第一個menuItem顯示,沒有其他,像這樣: http://i.imgur.com/EgdP1jd.png – n0win0u

+0

當您使用我的碼? – Kuba

+0

我能夠編輯我的風格到這種程度: http://i.imgur.com/WKXri3C.png 它仍然需要所有的東西作爲一個菜單項,因此使主權等任何想法?謝謝! – n0win0u