2012-07-20 94 views
0

我有隔板之間放置在像這樣幾個子菜單的菜單:子菜單風格各異

<Menu x:Name="mainMenu"> 

    <MenuItem x:Name="mainSubMenu" Header="Menus"> 

     <MenuItem x:Name="topMenuItem" Header="TopSubMenu"> 
     <MenuItem/> 
     <MenuItem/> 
     <MenuItem/> 
    </MenuItem> 

     <Separator/> 

    <MenuItem x:Name="middleMenuItem" Header="MiddleSubMenu"> 
     <MenuItem Header="MI1"/> 
     <MenuItem Header="MI2"/> 
     <MenuItem Header="MI3"/> 
     <MenuItem Header="MI4"/> 
    </MenuItem> 

    <Separator/> 

     <MenuItem x:Name="bottomMenuItem" Header="Bottom" /> 
    </MenuItem> 

</Menu> 

我創建了一個樣式,中間的子菜單,可通過不同的菜單項中滾動。我希望頂部和底部的子菜單具有默認樣式。我怎麼做?我如何爲不同的子菜單設置不同的樣式? 謝謝!

回答

1

考慮使用樣式資源,如:

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Window.Resources> 
     <Style x:Key="myStyleKey" TargetType="MenuItem"> 
      <!-- Your style definition goes here --> 
     </Style> 
    </Window.Resources> 
    <Grid> 
     <Menu x:Name="mainMenu"> 

      <MenuItem x:Name="mainSubMenu" Header="Menus"> 

       <MenuItem x:Name="topMenuItem" Header="TopSubMenu"> 
        <MenuItem/> 
        <MenuItem/> 
        <MenuItem/> 
       </MenuItem> 

       <Separator/> 

       <!-- Set style here --> 
       <MenuItem Style="{StaticResource myStyleKey}" x:Name="middleMenuItem" Header="MiddleSubMenu"> 
        <MenuItem Header="MI1"/> 
        <MenuItem Header="MI2"/> 
        <MenuItem Header="MI3"/> 
        <MenuItem Header="MI4"/> 
       </MenuItem> 

       <Separator/> 

       <MenuItem x:Name="bottomMenuItem" Header="Bottom" /> 
      </MenuItem> 

     </Menu> 
    </Grid> 
</Window> 

您可以單獨使用此模式爲每個菜單項。

0

是的,給你的風格密鑰和該密鑰指定每個菜單項你想要的風格:

例如

 <Style x:Key="MyStyle1" TargetType="{x:Type MenuItem}"> 
     <blahblahblah/> 
    </Style> 

    <MenuItem Style="{StaticResource MyStyle1}"> 

HTH!

Janene