Skip to main content
All docs
V24.1

ObjectCustomDrawEventArgs.DrawHtml(HtmlTemplate, DxHtmlPainterContext, Action<DxHtmlPainterArgs>) Method

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.

Namespace: DevExpress.XtraEditors

Assembly: DevExpress.Utils.v24.1.dll

NuGet Packages: DevExpress.Utils, DevExpress.Wpf.Core

Declaration

public void DrawHtml(
    HtmlTemplate template,
    DxHtmlPainterContext context,
    Action<DxHtmlPainterArgs> setupArgs = null
)

Parameters

Name Type Description
template HtmlTemplate

A template to draw.

context DxHtmlPainterContext

The object that transfers mouse events from a control to a template instance. This allows you to switch visual states (regular, hovered, pressed, and others) of template elements.

Optional Parameters

Name Type Default Description
setupArgs Action<DxHtmlPainterArgs> null

Sets up required properties of the DxHtmlPainterArgs object.

Remarks

The DrawHtml method allows you to paint custom HTML templates inside DevExpress controls. For instance, the code below illustrates how to handle the GridView.CustomDrawCell event to paint a template stored in an HtmlTemplateCollection inside cells that belong to the “Name” column.

Static Custom Draw Template

void OnCustomDrawCell(object sender, RowCellCustomDrawEventArgs e) {
    e.DefaultDraw();
    e.Handled = true;
    if (e.Column.FieldName == "Name")
        e.DrawHtml(htmlTemplateCollection1[0]);
}

The optional setupArgs delegate allows you to set up additional settings: specify interactivity keys, modify drawing bounds, assign custom values to elements with ${FieldName} placeholders, and more.

The following example demonstrates how to clip the content based on the container bounds:

void OnCustomDrawCell(object sender, RowCellCustomDrawEventArgs e) {
    var clipInfo = e.Cache.SaveAndSetClip(e.Bounds);
    try {
        e.DrawHtml(templates[0]);
    } finally {
        e.Cache.ClipInfo.RestoreClipRelease(clipInfo);
    }
}

Read the following topic for more information and examples: Custom Draw Templates.

See Also