2011-07-04 4 views
3

<Toolbar/>の中で<Menu/>を再生するのに問題がありました。私の例、VS2010からデフォルトWpfApplicationプロジェクトテンプレートに空のウィンドウに配置され、以下のように: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-guruでもないので、メニューのスタイルをボタンに近づける簡単な試みは致命的に失敗しました。

誰もが簡単です(理想的には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として適用されている場合、この方法は機能しません。私は今、異なるマージンと透明な背景を設定しましたが、これはまだ完璧ではありませんが、デフォルトよりも優れています。 –