private void RenderNormalBefore(RenderContext context) { Rectangle drawRect = ClientRectangle; IPaletteRibbonBack paletteBorder; IPaletteRibbonBack paletteTitle; // Are we a group inside a context tab? PaletteState elementState; if ((_ribbon.SelectedTab != null) && !string.IsNullOrEmpty(_ribbon.SelectedTab.ContextName)) { elementState = Tracking ? PaletteState.ContextTracking : PaletteState.ContextNormal; } else { elementState = Tracking ? PaletteState.Tracking : PaletteState.Normal; } // Decide on the palette to use switch (elementState) { case PaletteState.ContextNormal: paletteBorder = _ribbon.StateContextNormal.RibbonGroupNormalBorder; paletteTitle = _ribbon.StateContextNormal.RibbonGroupNormalTitle; break; case PaletteState.ContextTracking: paletteBorder = _ribbon.StateContextTracking.RibbonGroupNormalBorder; paletteTitle = _ribbon.StateContextTracking.RibbonGroupNormalTitle; break; case PaletteState.Tracking: paletteBorder = _ribbon.StateTracking.RibbonGroupNormalBorder; paletteTitle = _ribbon.StateTracking.RibbonGroupNormalTitle; break; case PaletteState.Normal: default: paletteBorder = _ribbon.StateNormal.RibbonGroupNormalBorder; paletteTitle = _ribbon.StateNormal.RibbonGroupNormalTitle; break; } ElementState = elementState; // Indicate the showing of the group inside a popup by adding focus override if (_ribbonGroup.ShowingAsPopup) { elementState |= PaletteState.FocusOverride; } // Draw the group border _paletteContextBack.SetInherit(paletteBorder); _mementoRibbonBack1 = context.Renderer.RenderRibbon.DrawRibbonBack(_ribbon.RibbonShape, context, drawRect, elementState, _paletteContextBack, VisualOrientation.Top, false, _mementoRibbonBack1); // Reduce the drawing rectangle to just the title area Rectangle titleRect = drawRect; titleRect.X++; titleRect.Width -= 2; titleRect.Y = titleRect.Bottom - _viewNormalTitle.Height; titleRect.Height = _viewNormalTitle.Height - 1; if (paletteBorder.GetRibbonBackColorStyle(State) == PaletteRibbonColorStyle.RibbonGroupNormalBorderTrackingLight) { // Redraw the title area inside the light border area titleRect.X++; titleRect.Width -= 2; titleRect.Height--; } // Draw the group title _mementoRibbonBack2 = context.Renderer.RenderRibbon.DrawRibbonBack(_ribbon.RibbonShape, context, titleRect, State, paletteTitle, VisualOrientation.Top, false, _mementoRibbonBack2); }