LayoutView.CustomCardCaptionImage Event
Allws you to display custom images within card captions.
Namespace: DevExpress.XtraGrid.Views.Layout
Assembly: DevExpress.XtraGrid.v24.1.dll
NuGet Packages: DevExpress.Win.Grid, DevExpress.Win.Navigation
Declaration
[DXCategory("Appearance")]
public event LayoutViewCardCaptionImageEventHandler CustomCardCaptionImage
Event Data
The CustomCardCaptionImage event's data class is LayoutViewCardCaptionImageEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
CaptionImageLocation | Gets or sets the relative position of an image within a card’s caption. |
CaptionImageVisible | Gets or sets whether the image in a card’s caption is visible. |
Image | Gets or sets the image to be displayed within an element. Inherited from CardCaptionImageEventArgs. |
ImageIndex | Gets or sets the index of the image to be displayed within a visual element. Inherited from CardCaptionImageEventArgs. |
ImageList | Gets or sets the source collection of images. Inherited from CardCaptionImageEventArgs. |
RowHandle | Gets the handle of the processed card. Inherited from CardCaptionImageEventArgs. |
Remarks
Handle the CustomCardCaptionImage
event to display custom images within card captions. The event fires for each card. Use the event’s e.RowHandle
parameter to identify the card currently being processed.
Images can be specified in one of two ways:
- Use the event’s
e.Image
parameter. Use the event’s
e.ImageIndex
parameter that specifies the image by its index in the image collection.By default, the image is obtained from the View’s Images collection. Use the event’s
e.ImageList
parameter to specify a custom image collection.
The e.Image
property takes priority over the e.ImageIndex
property.
private void layoutView_CustomCardCaptionImage(object sender, LayoutViewCardCaptionImageEventArgs e) {
// Specifies a custom collection with SVG icons.
e.ImageList = svgImageCollection1;
// Displays an image within the card's caption based on a condition.
e.ImageIndex = ((string)(sender as LayoutView).GetRowCellValue(e.RowHandle, "Title")).Contains("President") ? 1: 0;
// Specifies the image location (before text).
e.CaptionImageLocation = GroupElementLocation.BeforeText;
}
The following image shows the result: