Skip to main content

TabbedView.CustomDrawHeaderButton Event

Allows you to draw a header button manually.

Namespace: DevExpress.XtraBars.Docking2010.Views.Tabbed

Assembly: DevExpress.XtraBars.v23.2.dll

NuGet Package: DevExpress.Win.Navigation

Declaration

public event HeaderButtonCustomDrawEventHandler CustomDrawHeaderButton

Event Data

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

Property Description
Bounds Gets the rectangle that specifies the bounds of the header button.
Button Gets the button that is being drawn.
Cache Provides access to the drawing surface and a cache of pens, fonts, and brushes. Inherited from ObjectCustomDrawEventArgs.
Graphics Provides access to the drawing surface. Inherited from ObjectCustomDrawEventArgs.
Handled Gets or sets whether the event is handled and prevents the default draw operation from being performed. Inherited from ObjectCustomDrawEventArgs.
Info Provides access to the object that contains information about the button being drawn.
IsDefaultDrawInProgress Inherited from ObjectCustomDrawEventArgs.
Painter Provides access to the object that performs paint operations. Inherited from ObjectCustomDrawEventArgs.

The event data class exposes the following methods:

Method Description
DefaultDraw() Inherited from ObjectCustomDrawEventArgs.
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. Inherited from ObjectCustomDrawEventArgs.
DrawHtml(HtmlTemplate, Action<DxHtmlPainterArgs>) Paints the required HTML template inside an element that raised this event. Inherited from ObjectCustomDrawEventArgs.

Example

The code below shows how to draw a custom background in tab headers and header buttons.

image

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

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.
     * ...
     */
}
See Also