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>

我为中间子菜单创建了一个样式,允许滚动不同的菜单项。我希望顶部和底部子菜单具有默认样式。我怎么做?如何为不同的子菜单设置不同的样式?谢谢!

4

2 回答 2

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>

您可以为每个菜单项单独使用此模式。

于 2012-07-20T18:34:45.027 回答
0

是的,给你的 Styles 一个 Key 并通过该键指定你想要的每个 MenuItem 的样式:

例如

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

     <MenuItem Style="{StaticResource MyStyle1}">

珍妮

于 2012-07-20T18:36:05.243 回答