windowsforms-devexpress-dot-xtranavbar-dot-navbargroup-da09e887.md
Fires when the group’s client height is calculated.
Namespace : DevExpress.XtraNavBar
Assembly : DevExpress.XtraNavBar.v25.2.dll
NuGet Package : DevExpress.Win
public event NavBarCalcGroupClientHeightEventHandler CalcGroupClientHeight
Public Event CalcGroupClientHeight As NavBarCalcGroupClientHeightEventHandler
The CalcGroupClientHeight event's data class is NavBarCalcGroupClientHeightEventArgs. The following properties provide information specific to this event:
| Property | Description |
|---|---|
| Group | Gets a group for which the event is fired. Inherited from NavBarGroupEventArgs. |
| Height | Gets or sets the group’s client area height. |
Write a CalcGroupClientHeight event handler to assign custom height to the group’s client area. The event fires only if the paint style of the control doesn’t imply that group headers are moved to the opposite side of the control when corresponding groups are expanded/collapsed.
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.
using DevExpress.XtraNavBar.ViewInfo;
using DevExpress.XtraNavBar;
readonly Font mailFont = new Font("Verdana", 8, FontStyle.Bold);
readonly Font siteFont = new Font("Verdana", 8);
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;
// Formatting the output string.
using(var outStringFormat = new StringFormat()) {
outStringFormat.Alignment = StringAlignment.Near;
outStringFormat.LineAlignment = StringAlignment.Center;
// Painting the first string.
rect.Offset(0, rect.Height);
e.Cache.DrawString("E-mail:", mailFont,
Brushes.Black, rect, outStringFormat);
// Painting the second string.
rect.Offset(0, rect.Height);
e.Cache.DrawString("[email protected]", siteFont,
Brushes.Black, rect, outStringFormat);
}
// Prohibiting default painting.
e.Handled = true;
}
private void navBarGroup2_CalcGroupClientHeight(object sender,
NavBarCalcGroupClientHeightEventArgs e) {
e.Height = 70;
}
Imports DevExpress.XtraNavBar.ViewInfo
Imports DevExpress.XtraNavBar
Private ReadOnly mailFont As New Font("Verdana", 8, FontStyle.Bold)
Private ReadOnly siteFont As New Font("Verdana", 8)
Private Sub NavBarControl1_CustomDrawGroupClientForeground(ByVal sender As Object, _
ByVal e As CustomDrawObjectEventArgs) _
Handles NavBarControl1.CustomDrawGroupClientForeground
' Identifying the processed group.
Dim info As NavGroupClientInfoArgs = TryCast(e.ObjectInfo, NavGroupClientInfoArgs)
If info.Group.Caption <> "Support Info" Then
Return
End If
' Specifying the text rectangle.
Dim rect As Rectangle = e.RealBounds
rect.Height \= 4
' Formatting the output string.
Using outStringFormat = New StringFormat()
outStringFormat.Alignment = StringAlignment.Near
outStringFormat.LineAlignment = StringAlignment.Center
' Painting the first string.
rect.Offset(0, rect.Height)
e.Cache.DrawString("E-mail:", mailFont, Brushes.Black, rect, outStringFormat)
' Painting the second string.
rect.Offset(0, rect.Height)
e.Cache.DrawString("[email protected]", siteFont, Brushes.Black, rect, outStringFormat)
End Using
' Prohibiting default painting.
e.Handled = True
End Sub
Private Sub NavBarGroup2_CalcGroupClientHeight(ByVal sender As System.Object, _
ByVal e As NavBarCalcGroupClientHeightEventArgs) Handles NavBarGroup6.CalcGroupClientHeight
e.Height = 70
End Sub
See Also