windowsforms-devexpress-dot-xtrabars-dot-docking2010-dot-views-dot-tabbed-dot-tabbedview-6bb83eea.md
Allows you to draw a tab header manually.
Namespace : DevExpress.XtraBars.Docking2010.Views.Tabbed
Assembly : DevExpress.XtraBars.v25.2.dll
NuGet Package : DevExpress.Win.Navigation
public event TabHeaderCustomDrawEventHandler CustomDrawTabHeader
Public Event CustomDrawTabHeader As TabHeaderCustomDrawEventHandler
The CustomDrawTabHeader event's data class is TabHeaderCustomDrawEventArgs. The following properties provide information specific to this event:
| Property | Description |
|---|---|
| Bounds | Gets the rectangle that specifies the bounds of the tab header. |
| Cache | Provides access to the drawing surface and a cache of pens, fonts, and brushes. |
| ControlInfo | Gets an object that contains information about the tab being drawn. |
| Graphics | Provides access to the drawing surface. |
| Handled | Gets or sets whether the event is handled and prevents the default draw operation from being performed. |
| Painter | Provides access to the object that performs paint operations. |
| TabHeaderInfo | Provides access to the object that contains information about the page being drawn. |
| TabHeaderRowInfo | Provides access to the object that contains information about the row being drawn. |
The event data class exposes the following methods:
| Method | Description |
|---|---|
| DefaultDraw() | Draws the visual element according to the default algorithm. |
| DefaultDrawBackground() | Draws the visual element’s background according to the default algorithm. |
| DefaultDrawButtons() | Draws the visual element’s buttons according to the default algorithm. |
| DefaultDrawImage() | Draws the visual element’s icon according to the default algorithm. |
| DefaultDrawText() | Draws the visual element’s text according to the default algorithm. |
| DrawHtml(HtmlTemplate, DxHtmlPainterContext, Action<DxHtmlPainterArgs>) | Paints the required HTML template inside an element that raised this event. The context parameter allows you to assign an object that transfers mouse events to template elements. |
| DrawHtml(HtmlTemplate, Action<DxHtmlPainterArgs>) | Paints the required HTML template inside an element that raised this event. |
The code below shows how to draw a custom background in tab headers and header buttons.
using System.Drawing.Drawing2D;
HatchBrush myHatchBrush1 = new HatchBrush(HatchStyle.BackwardDiagonal, Color.LightGray, Color.AliceBlue);
private void TabbedView_CustomDrawTabHeader(object sender, XtraTab.TabHeaderCustomDrawEventArgs e) {
e.Cache.FillRectangle(myHatchBrush1, e.Bounds);
e.DefaultDrawText();
e.DefaultDrawImage();
e.DefaultDrawButtons();
e.Handled = true;
}
HatchBrush myHatchBrush2 = new HatchBrush(HatchStyle.DiagonalCross, Color.LightGray, Color.AliceBlue);
private void TabbedView_CustomDrawHeaderButton(object sender, XtraTab.HeaderButtonCustomDrawEventArgs e) {
e.Cache.FillRectangle(myHatchBrush2, e.Bounds);
e.DefaultDraw();
e.Handled = true;
}
Imports System.Drawing.Drawing2D
Private myHatchBrush2 As New HatchBrush(HatchStyle.DiagonalCross, Color.LightGray, Color.AliceBlue)
Private Sub TabbedView1_CustomDrawHeaderButton(ByVal sender As Object, ByVal e As DevExpress.XtraTab.HeaderButtonCustomDrawEventArgs) _
Handles tabbedView1.CustomDrawHeaderButton
e.Cache.FillRectangle(myHatchBrush2, e.Bounds)
e.DefaultDraw()
e.Handled = True
End Sub
Private myHatchBrush1 As New HatchBrush(HatchStyle.BackwardDiagonal, Color.LightGray, Color.AliceBlue)
Private Sub TabbedView1_CustomDrawTabHeader(ByVal sender As Object, ByVal e As DevExpress.XtraTab.TabHeaderCustomDrawEventArgs) _
Handles tabbedView1.CustomDrawTabHeader
e.Cache.FillRectangle(myHatchBrush1, e.Bounds)
e.DefaultDrawText()
e.DefaultDrawImage()
e.DefaultDrawButtons()
e.Handled = True
End Sub
The following example demonstrates how to obtain the bounds of a tab header and its UI elements, and the document itself:
using System.Drawing.Drawing2D;
private void TabbedView1_CustomDrawTabHeader(object sender, DevExpress.XtraTab.TabHeaderCustomDrawEventArgs e) {
// Gets the document.
var document = (e.TabHeaderInfo.Page as IDocumentInfo).Document;
var tabHeaderBounds = e.Bounds;
var textBounds = e.TabHeaderInfo.Text;
var buttonBounds = e.TabHeaderInfo.ButtonsPanel.Bounds;
/*
* Draw the tab header and its UI elements.
* ...
*/
}
Imports System.Drawing.Drawing2D
Private Sub TabbedView1_CustomDrawTabHeader(ByVal sender As Object, ByVal e As DevExpress.XtraTab.TabHeaderCustomDrawEventArgs)
Dim document = (TryCast(e.TabHeaderInfo.Page, IDocumentInfo)).Document
Dim tabHeaderBounds = e.Bounds
Dim textBounds = e.TabHeaderInfo.Text
Dim buttonBounds = e.TabHeaderInfo.ButtonsPanel.Bounds
' ...
End Sub
See Also