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

NavBarControl.CustomDrawGroupClientForeground Event

Provides the ability to perform custom painting of a group client area’s foreground.

Namespace: DevExpress.XtraNavBar

Assembly: DevExpress.XtraNavBar.v18.2.dll

Declaration

public event CustomDrawObjectEventHandler CustomDrawGroupClientForeground

Event Data

The CustomDrawGroupClientForeground event's data class is CustomDrawObjectEventArgs. The following properties provide information specific to this event:

Property Description
Appearance Gets the painted element’s appearance settings.
Cache Gets an object which specifies the storage for the most used pens, fonts and brushes.
Graphics Gets an object used to paint the object.
Handled Gets or sets a value specifying whether the control must perform default painting after an event handler has been executed.
ObjectInfo Gets an object providing information on the element being painted.
RealBounds Gets the bounding rectangle of the painted object.

Remarks

Write a CustomDrawGroupClientForeground event handler to perform custom painting of a group client area’s foreground. Set the CustomDrawObjectEventArgs.Handled property of the event parameter to true to disable default painting. Other properties of the event parameter allow you to identify the group whose client area is painted and provide all necessary information to paint it.

Use the CustomDrawGroupClientForeground event when you want to draw a group client area over the default painted background. If you don’t want default background painting, use the NavBarControl.CustomDrawGroupClientBackground event instead.

Important

Never change cell values or modify the control’s layout on this event, or any other event designed to tune the control’s appearance. Any action that causes a layout update can cause the control to malfunction.

Example

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;        
}
See Also