下面的示例代码接管了 CardView.CustomDrawCardField 事件来绘制分类字段。 这些字段被用于对数据字段进行逻辑分组。
此事件处理程序检查当前被绘制的列是否绑定到一个数据字段。 如果没有,则把此字段绘制为分类字段。 这意味着该列的标题被居中绘制,并且不显示其他数据。 下面的插图展示了一个示例。
C# | 复制代码 |
---|---|
using DevExpress.Utils; using DevExpress.XtraGrid.Views.Base; private void cardView1_CustomDrawCardField(object sender, RowCellCustomDrawEventArgs e) { if(e.Column.FieldName != "") return; e.Graphics.FillRectangle(e.Cache.GetSolidBrush(SystemColors.Control), e.Bounds); e.Appearance.TextOptions.HAlignment = HorzAlignment.Center; e.Appearance.Font = e.Cache.GetFont(e.Appearance.Font, FontStyle.Bold); e.Appearance.DrawString(e.Cache, e.Column.Caption, e.Bounds); e.Handled = true; } |
Visual Basic | 复制代码 |
---|---|
Imports DevExpress.Utils Imports DevExpress.XtraGrid.Views.Base Private Sub CardView1_CustomDrawCardField(ByVal sender As Object, _ ByVal e As RowCellCustomDrawEventArgs) Handles CardView1.CustomDrawCardField If Not e.Column.FieldName = "" Then Exit Sub e.Graphics.FillRectangle(e.Cache.GetSolidBrush(SystemColors.Control), e.Bounds) e.Appearance.TextOptions.HAlignment = HorzAlignment.Center e.Appearance.Font = e.Cache.GetFont(e.Appearance.Font, FontStyle.Bold) e.Appearance.DrawString(e.Cache, e.Column.Caption, e.Bounds) e.Handled = True End Sub |