private void ribbonControl1_CanMinimizePageGroup(object sender, CanMinimizePageGroupEventArgs e)
        {
            if (e.PageGroup.Tag == null)
            {
                return;
            }

            int groupMinimizeIndex = GetGroupMinimizeIndex(e.PageGroup);

            if (groupMinimizeIndex == -1)
            {
                e.CanMinimize = false;
                return;
            }

            for (int i = 0; i < e.PanelViewInfo.Groups.Count; i++)
            {
                RibbonPageGroupViewInfo groupViewInfo = e.PanelViewInfo.Groups[i];

                int minimizeIndex = GetGroupMinimizeIndex(groupViewInfo.PageGroup);
                if (minimizeIndex > 0 && minimizeIndex < groupMinimizeIndex)
                {
                    if (!groupViewInfo.Minimized)
                    {
                        e.CanMinimize = false;
                        return;
                    }
                }
            }
        }
        protected override int Reduce()
        {
            if (GroupInfo.Items.Count == 0)
            {
                return(0);
            }

            RibbonPageGroupViewInfo pageGroupInfo = GroupInfo as RibbonPageGroupViewInfo;

            if (pageGroupInfo == null)
            {
                return(base.Reduce());
            }

            if (!ViewInfo.CanMinimizePageGroup(pageGroupInfo.PageGroup))
            {
                return(1);
            }

            return(base.Reduce());
        }
示例#3
0
 protected override RibbonPageGroupLayoutCalculator CreateGroupLayoutCalculator(RibbonPageGroupViewInfo pageInfo)
 {
     return(new RibbonPageGroupComplexLayoutCalculatorDescendant(pageInfo));
 }
 public MyRibbonPageGroupComplexLayoutCalculator(RibbonPageGroupViewInfo groupInfo)
     : base(groupInfo)
 {
 }