/// <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); } }
/// <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; } }