初始化时打开子菜单

时间:2014-02-17 07:32:48

标签: wpf

如何在页面初始化时打开菜单控件的子菜单?

这是我的菜单:

<Menu Name="mnuData" IsMainMenu="True">
     <MenuItem Header="_Clients">
         <MenuItem Header="Child 1"></MenuItem>
         <MenuItem Header="Child 2"></MenuItem>
         <MenuItem Header="Child 3"></MenuItem>
     </MenuItem>
     <MenuItem Header="_Drivers">
         <MenuItem Header="Child 4"></MenuItem>
         <MenuItem Header="Child 5"></MenuItem>
         <MenuItem Header="Child 6"></MenuItem>
     </MenuItem>
     <MenuItem Header="_Trucks">
         <MenuItem Header="Child 7"></MenuItem>
         <MenuItem Header="Child 8"></MenuItem>
     </MenuItem>
     <MenuItem Header="T_ransporters">
         <MenuItem Header="Child 7"></MenuItem>
         <MenuItem Header="Child 8"></MenuItem>
     </MenuItem>
 </Menu>

这是我的代码:

namespace NJPTransport.Pages
{
    /// <summary>
    /// Interaction logic for Data.xaml
    /// </summary>
    public partial class Data : UserControl
    {
        public Data()
        {
            InitializeComponent();

            // mnuMenu. ...... open submenu for specific item here
        }
    }
}

当我初始化页面类时,我想将参数传递给构造函数以说明哪个子菜单必须打开,但是,我正在努力找到打开特定子菜单的属性/事件。

更新 请注意,菜单位于选项卡控件中,如果我将菜单添加到默认打开的选项卡,则IsSubmenuOpen="True"工作正常,但是,只要我将菜单添加到非选项卡中默认情况下打开然后这不起作用。一旦我更改标签,它似乎也会松开IsSubmenuOpen="True"值,这不是我想要的。无论标签切换如何,我都希望它打开并保持打开状态。

1 个答案:

答案 0 :(得分:1)

利用这个......

已经讨论过here.

 <TabControl SelectionChanged="Selector_OnSelectionChanged">
        <TabItem Header="Tab1" IsSelected="True" />
        <TabItem Header="Tab2" IsSelected="False">
            <Menu Name="mnuData" IsMainMenu="True">
                <MenuItem x:Name="ClientsMenuItem"
                          Header="_Clients"
                          IsSubmenuOpen="True">
                    <MenuItem Header="Child 1" />
                    <MenuItem Header="Child 2" />
                    <MenuItem Header="Child 3" />
                </MenuItem>
                <MenuItem Header="_Drivers">
                    <MenuItem Header="Child 4" />
                    <MenuItem Header="Child 5" />
                    <MenuItem Header="Child 6" />
                </MenuItem>
                <MenuItem Header="_Trucks">
                    <MenuItem Header="Child 7" />
                    <MenuItem Header="Child 8" />
                </MenuItem>
                <MenuItem Header="T_ransporters">
                    <MenuItem Header="Child 7" />
                    <MenuItem Header="Child 8" />
                </MenuItem>
            </Menu>
        </TabItem>
    </TabControl>

调用Selection changed的{​​{1}}并为第一个菜单项设置Tabcontrol ..

enter image description here