我有XtraGrid
,我添加了一个新列并将其ColumnEdit
属性设置为 RepositoryItemPictureEdit
. 我尝试使用它设置图像,RepositoryItemPictureEdit1.Appearance.Image
但在表单加载后它没有填充,有什么想法吗?
我有2011版
我有XtraGrid
,我添加了一个新列并将其ColumnEdit
属性设置为 RepositoryItemPictureEdit
. 我尝试使用它设置图像,RepositoryItemPictureEdit1.Appearance.Image
但在表单加载后它没有填充,有什么想法吗?
我有2011版
正如我猜你没有以正确的方式分配图像来控制。你可以通过这个 DevExpress KB 线程 -为什么我在使用 PictureEdit 就地编辑器的 GridColumn 中得到“无图像数据”文本?
来源:将图像分配给 RepositoryItemPictureEdit
您也可以使用此方法:
1)将列的 FieldName 属性设置为“Image”,因为您的 DataTable 包含此字段
2)将 Image DataColumn 类型设置为 Image 值
3)更改代码并且不要将图像转换为字节数组。
只需如下设置:
RepositoryItemPictureEdit pictureEdit = gridControl1.RepositoryItems.Add("PictureEdit") as RepositoryItemPictureEdit;
pictureEdit.SizeMode = PictureSizeMode.Zoom;
pictureEdit.NullText = " ";
gridView1.Columns["Picture"].ColumnEdit = pictureEdit;
要使编辑器加载图像,底层数据类型应对应于RepositoryItemPictureEdit.PictureStoreMode属性值
如果要在单元格中显示图像,则可以使用 CustomDrawCell 事件
这ImageStream
是一个存储图像的属性。
public Stream ImageStream { get; set; }
您可以按如下方式使用它:
if (profile != null)
{
imageStream = MyObj.ImageStream; // this image saved as stream
}
}
if (imageStream != null)
{
e.Graphics.DrawImage(System.Drawing.Image.FromStream(imageStream), e.Bounds);
if (cellValue.Condition== "XXXX")
{
e.Graphics.DrawRectangle(e.Cache.GetPen(Color.Red), e.Bounds);
}
e.DisplayText = text;
Rectangle r = e.Bounds;
Rectangle w = new Rectangle(r.X, r.Y - 5, r.Width, r.Height);
//Draw the cell value
e.Appearance.DrawString(e.Cache, e.DisplayText, w);
e.Bounds.Inflate(-2, -2);
}
更多参考:
如何在网格单元格中放置图标
如果数据源仅包含指向图像的链接,如何在网格列中显示外部图像
RepositoryItemPictureEdit 加载图像
如何将图片加载到存储
库itemPictureEdit RepositoryItemPictureEdit 默认空图像