2011-07-04 26 views
3

我遇到了麻煩,在<Toolbar/>內玩<Menu/>可以很好玩。我的例子中,如下放置在一個空的窗口在默認WpfApplication項目模板從VS2010:解決方案在WPF中彈出工具欄中的菜單式樣

<DockPanel> 
    <ToolBar DockPanel.Dock="Top"> 
     <Button Content="Button 1"/> 
     <Button Content="Button 2"/> 
     <Separator/> 
     <CheckBox Content="CheckBox 1"/> 
     <CheckBox Content="CheckBox 2"/> 
     <Separator/> 
     <Menu> 
      <MenuItem Header="Menu"> 
       <MenuItem Header="File"> 
        <MenuItem Header="Copy"/> 
        <MenuItem Header="Paste"/> 
       </MenuItem> 
      </MenuItem> 
     </Menu> 
    </ToolBar> 
    <Menu DockPanel.Dock="Top"> 
     <MenuItem Header="Menu"> 
      <MenuItem Header="File"> 
       <MenuItem Header="Copy"/> 
       <MenuItem Header="Paste"/> 
      </MenuItem> 
     </MenuItem> 
    </Menu> 
    <Grid> 

    </Grid> 
</DockPanel> 

默認樣式誤對準兩個標籤和懸停指示器:

menu-in-toolbar styling fail

我不是設計師,也不是WPF專家,所以我簡單的嘗試讓菜單的風格更接近按鈕,但是卻失敗了。

有沒有人簡單(理想情況下基於Toolbar.MenuStyleKey)樣式來重新排列菜單?

回答

1

這裏是一個似乎KaXaml工作快速件事:

<ToolBar DockPanel.Dock="Top"> 
     <Button Content="Button 1"/> 
     <Button Content="Button 2"/> 
     <Separator/> 
     <CheckBox Content="CheckBox 1"/> 
     <CheckBox Content="CheckBox 2"/> 
     <Separator/> 
     <Menu Margin="0, -1, 0, 0" Style="{x:Null}"> 
      <MenuItem Header="Menu"> 
       <MenuItem Header="File"> 
        <MenuItem Header="Copy"/> 
        <MenuItem Header="Paste"/> 
       </MenuItem> 
      </MenuItem> 
     </Menu> 
    </ToolBar> 
+0

這看起來錯了,但很有效。非常感謝你! –

+0

P.S:當菜單應用爲DataTemplate時,此方法不起作用。我現在已經設置了不同的邊距和透明背景,但仍然不夠完美,但仍然看起來比默認的要好。 –

相關問題