Back to Devexpress

CustomDrawTimescaleColumnEventArgs.DrawHtml(HtmlTemplate, Action<DxHtmlPainterArgs>) Method

windowsforms-devexpress-dot-xtragantt-dot-customdrawtimescalecolumneventargs-dot-drawhtml-x28-devexpress-dot-utils-dot-html-dot-htmltemplate-system-dot-action-devexpress-dot-utils-dot-html-dot-dxhtmlpainterargs-x29.md

latest4.1 KB
Original Source

CustomDrawTimescaleColumnEventArgs.DrawHtml(HtmlTemplate, Action<DxHtmlPainterArgs>) Method

Paints the required HTML template inside an element that raised this event.

Namespace : DevExpress.XtraGantt

Assembly : DevExpress.XtraGantt.v25.2.dll

NuGet Package : DevExpress.Win.Gantt

Declaration

csharp
public void DrawHtml(
    HtmlTemplate template,
    Action<DxHtmlPainterArgs> setupArgs = null
)
vb
Public Sub DrawHtml(
    template As HtmlTemplate,
    setupArgs As Action(Of DxHtmlPainterArgs) = Nothing
)

Parameters

NameTypeDescription
templateHtmlTemplate

A template to draw.

|

Optional Parameters

NameTypeDefaultDescription
setupArgsAction<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.

csharp
void OnCustomDrawCell(object sender, RowCellCustomDrawEventArgs e) {
    e.DefaultDraw();
    e.Handled = true;
    if (e.Column.FieldName == "Name")
        e.DrawHtml(htmlTemplateCollection1[0]);
}
vb
Private Sub OnCustomDrawCell(ByVal sender As Object, ByVal e As RowCellCustomDrawEventArgs)
    e.DefaultDraw()
    e.Handled = True
    If e.Column.FieldName = "Name" Then e.DrawHtml(htmlTemplateCollection1(0))
End Sub

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:

csharp
void OnCustomDrawCell(object sender, RowCellCustomDrawEventArgs e) {
    var clipInfo = e.Cache.SaveAndSetClip(e.Bounds);
    try {
        e.DrawHtml(templates[0]);
    } finally {
        e.Cache.ClipInfo.RestoreClipRelease(clipInfo);
    }
}
vb
Private Sub OnCustomDrawCell(ByVal sender As Object, ByVal e As RowCellCustomDrawEventArgs)
    Dim clipInfo = e.Cache.SaveAndSetClip(e.Bounds)
    Try
        e.DrawHtml(templates(0))
    Finally
        e.Cache.ClipInfo.RestoreClipRelease(clipInfo)
    End Try
End Sub

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

See Also

CustomDrawTimescaleColumnEventArgs Class

CustomDrawTimescaleColumnEventArgs Members

DevExpress.XtraGantt Namespace