CustomDrawEventArgs.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.XtraGrid.Views.Base
Assembly: DevExpress.XtraGrid.v24.2.dll
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 |
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.
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.