Пример #1
0
        /// <summary>
        /// 菜单点击处理方法
        /// </summary>
        /// <param name="menuItem"></param>
        private void MenuItemClick(MenuItem menuItem)
        {
            MenuItemViewModel menuItemViewModel = menuItem.Tag as MenuItemViewModel;

            if (menuItemViewModel != null)
            {
                if (menuItemViewModel.IsMDIWindow)
                {
                    //添加MDI窗体
                    MessageBox.Show("This is a MDI window!");
                }
                else
                {
                    if (menuItemViewModel.MenuLevel > 1)
                    {
                        //添加正常窗体
                        MessageBox.Show("This is a normal window!");
                    }
                }

                MenuItemClickStyle(menuItemViewModel);
            }
        }
Пример #2
0
        /// <summary>
        /// 菜单选中样式
        /// </summary>
        /// <param name="menuItem"></param>
        /// <param name="menuItemViewModel"></param>
        public void MenuItemClickStyle(MenuItemViewModel menuItemViewModel)
        {
            //如果有先前选中的一级菜单 取消选中
            if (menuItemChecked != null)
            {
                menuItemChecked.IsChecked = false;
            }
            //选中子菜单一级菜单呈现选中样式
            MenuItem menuItemTopLeve = null;

            try
            {
                switch (menuItemViewModel.MenuLevel)
                {
                case 3:
                    menuItemTopLeve = GetChildObjects <MenuItem>(mainMenu, "").FindAll(m => ((MenuItemViewModel)m.Tag).ID == lst_MenuItem.FindAll(p => p.ID == lst_MenuItem.FindAll(a => a.ID == menuItemViewModel.ParentID).FirstOrDefault().ParentID).FirstOrDefault().ID).FirstOrDefault();
                    break;

                case 2:
                    menuItemTopLeve = GetChildObjects <MenuItem>(mainMenu, "").FindAll(m => ((MenuItemViewModel)m.Tag).ID == lst_MenuItem.FindAll(p => p.ID == menuItemViewModel.ParentID).FirstOrDefault().ID).FirstOrDefault();
                    break;

                default:
                    menuItemTopLeve = GetChildObjects <MenuItem>(mainMenu, "").FindAll(m => ((MenuItemViewModel)m.Tag).ID == menuItemViewModel.ID).FirstOrDefault();
                    break;
                }
                if (menuItemTopLeve != null && !string.IsNullOrEmpty(menuItemTopLeve.Header.ToString()))
                {
                    menuItemTopLeve.IsChecked = true;
                    menuItemChecked           = menuItemTopLeve;
                }
            }
            catch (Exception)
            {
                menuItemChecked = null;
            }
        }