public RibbonPageCategoryCollectionUIAdapter(RibbonPageCategoryCollection ribbonPageCategoryCollection) { Guard.ArgumentNotNull(ribbonPageCategoryCollection, "RibbonPageCategoryCollection"); this.ribbonPageCategoryCollection = ribbonPageCategoryCollection; }
/// <summary> /// 修正菜单 /// </summary> /// <param name="ribbonPageCategoryCollection"></param> /// <param name="_c"></param> virtual public void ChangeMenu(RibbonPageCategoryCollection ribbonPageCategoryCollection, IChildForm _c) { RibbonPageCategory selectionCategory = ribbonPageCategoryCollection[0] as RibbonPageCategory; if (selectionCategory == null) { return; } selectionCategory.Pages.Clear(); if (_c == null) { selectionCategory.Visible = false; } else { selectionCategory.Visible = true; IList <FrmMenuPage> _menuPages = _c.GetMenuPages(); foreach (FrmMenuPage _page in _menuPages) { int _index = selectionCategory.Pages.Add(new RibbonPage(_page.PageTitle)); IList <FrmMenuGroup> _menugroups = _page.MenuGroups; foreach (FrmMenuGroup _mg in _menugroups) { int _groupIndex = selectionCategory.Pages[_index].Groups.Add(new RibbonPageGroup(_mg.DisplayTitle)); RibbonPageGroup _mgroup = selectionCategory.Pages[_index].Groups[_groupIndex]; IList <FrmMenuItem> _items = _mg.MenuItems; foreach (FrmMenuItem _item in _items) { BarButtonItem _menuitem = new BarButtonItem(); _menuitem.Caption = _item.MenuTitle; _menuitem.Tag = _item.CommandName; _menuitem.LargeGlyph = _item.MenuIcon; _menuitem.Glyph = _item.MenuIcon; _menuitem.LargeWidth = _item.MenuPicWidth; _menuitem.Enabled = _item.ButtonEnable; if (_item.ChildMenus.Count < 1) { _menuitem.ItemClick += new ItemClickEventHandler(_menuitem_ItemClick); } else { _menuitem.ButtonStyle = BarButtonStyle.DropDown; PopupMenu _cMenu = new PopupMenu(); _menuitem.DropDownControl = _cMenu; _cMenu.Ribbon = this.Ribbon; foreach (FrmMenuItem _citem in _item.ChildMenus) { BarButtonItem _cmItem = new BarButtonItem(); _cmItem.Caption = _citem.MenuTitle; _cmItem.Tag = _citem.CommandName; _cmItem.LargeGlyph = _citem.MenuIcon; _cmItem.Glyph = _citem.MenuIcon; _cmItem.LargeWidth = _citem.MenuPicWidth; _cmItem.Enabled = _citem.ButtonEnable; _cmItem.ItemClick += new ItemClickEventHandler(_menuitem_ItemClick); this.Ribbon.Items.Add(_cmItem); _cMenu.ItemLinks.Add(_cmItem); } } _mgroup.ItemLinks.Add(_menuitem); } } } } if (selectionCategory.Visible && selectionCategory.Pages.Count > 0) { ribbonPageCategoryCollection.Ribbon.SelectedPage = selectionCategory.Pages[0]; } }