stoic
stoic

Reputation: 4830

Open submenu on initialization

How can I open a Menu Control's submenu on init of the page?

Here is my Menu:

<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>

Here is my Code:

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
        }
    }
}

When I initialise the page class, I want to pass arguments to the constructor to say which submenu must be open, however, I am struggling to find the property / event that opens a specific submenu.

UPDATE Please note that the Menu is located within a tab control, if I add the menu to the tab that is open by default, then IsSubmenuOpen="True" works fine, however, as soon as I add the menu to a tab that is not open by default then this does not work. It also seems to loose the IsSubmenuOpen="True" value as soon as I change tabs, which is not what I want. I want it to open and stay open regardless of tab switching.

Upvotes: 0

Views: 619

Answers (1)

Sankarann
Sankarann

Reputation: 2665

make use of this...

Already this has been discussed 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>

Invoke the Selection changed of the Tabcontrol and Set the IsSubmenuOpen="True" for first Menu Item..

enter image description here

Upvotes: 1

Related Questions