Skip to main content
All docs
V25.1
  • GalleryItemCustomDrawEventArgs.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.XtraBars.Ribbon

    Assembly: DevExpress.XtraBars.v25.1.dll

    NuGet Package: DevExpress.Win.Navigation

    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