Skip to main content
A newer version of this page is available. .

How to: Custom Paint the Group's Client Foreground

  • 2 minutes to read

The following sample code handles the NavBarControl.CustomDrawGroupClientForeground event to custom paint the text on a group’s client foreground. The group doesn’t contain any links initially and thus the NavBarGroup.CalcGroupClientHeight event is handled to specify the group’s height.

The image below shows the result.

CustomDraw - GroupClientForeground

using DevExpress.XtraNavBar.ViewInfo;
using DevExpress.XtraNavBar;

private void navBarControl1_CustomDrawGroupClientForeground(object sender, 
  CustomDrawObjectEventArgs e) {
   // Identifying the processed group.
   NavGroupClientInfoArgs info = e.ObjectInfo as NavGroupClientInfoArgs;
   if (info.Group.Caption != "Support Info") return;

   // Specifying the text rectangle.    
   Rectangle rect = e.RealBounds;
   rect.Height /= 4;

   // Creating a brush object.
   SolidBrush textBrush = new SolidBrush(Color.Black);

   // Formatting the output string.
   StringFormat outStringFormat = new StringFormat();
   outStringFormat.Alignment = StringAlignment.Near;
   outStringFormat.LineAlignment = StringAlignment.Center;

   // Painting the first string.
   rect.Offset(0, rect.Height);
   using(textBrush) {
      e.Graphics.DrawString("E-mail:", new Font("Verdana", 8, FontStyle.Bold), 
        textBrush, rect, outStringFormat);

      // Painting the second string.
      rect.Offset(0, rect.Height);
      e.Graphics.DrawString("support@devexpress.com", new Font("Verdana", 8), 
        textBrush, rect, outStringFormat);
   }

   // Prohibiting default painting.
   e.Handled = true;
}

private void navBarGroup2_CalcGroupClientHeight(object sender, 
  NavBarCalcGroupClientHeightEventArgs e) {
   e.Height = 70;        
}