DevExpress:Gridview图片;如何调整图像大小以适合单元格的大小

时间:2020-07-31 07:28:12

标签: c# winforms gridview devexpress

我有一个正在填充测试数据的GridView。该测试模型包括一个System.Drawing.Image字段,我用于显示该特定行的自动生成的位图图像。

图像当前正在加载到“网格视图”中。如何设置图像以拉伸到当前单元格的宽度?我不想使用自定义绘制单元事件,因为它将在每次网格更改时强制重新创建图像(所有有关网格的事件)。

这是我如何填充网格的测试代码:

        Random random = new Random();

        for (int i = 0; i < 50; i++)
        {
            Image image = Image.FromFile(@"MyPicture.bmp");
            IArrivalModel arrivalModel = new ArrivalModel()
            {
                SupplierCode = $"{i}",
                SupplierShortName = $"Supplier {i}",
                DeliveredQuantity = random.Next(5000, 8000),
                InStockQuantity = random.Next(0, 5000),
                ExpectedUsageQuantity = random.Next(0, 3000),
                InventoryItemShortName = $"Inventory Item {i}",
                InventoryItemCode = $"{i}",
                RegistrationNumber = $"{(char)random.Next('A', 'Z')}{(char)random.Next('A', 'Z')} {random.Next(0, 9)}{random.Next(0, 9)} GP",
                ButtonRegion = image
        };

            arrivalModels.Add(arrivalModel);
        }

        gridControl1.DataSource = arrivalModels;

到达模型:

public class ArrivalModel : IArrivalModel
{
    public string SupplierCode { get; set; }
    public string SupplierShortName { get; set; }
    public string RegistrationNumber { get; set; }
    public string InventoryItemCode { get; set; }
    public string InventoryItemShortName { get; set; }
    public decimal DeliveredQuantity { get; set; }
    public decimal InStockQuantity { get; set; }
    public decimal ExpectedUsageQuantity { get; set; }
    /// <summary>
    /// A place holder to display the image in
    /// </summary>
    public Image ButtonRegion { get; set; }
}

我已经尝试过DevExpress的示例,但是却无法显示图片

RepositoryItemTextEdit textEdit = new RepositoryItemTextEdit();
textEdit.ContextImageOptions.Image = Image.FromFile(@"MyImage.bmp");
gridView1.Columns[nameof(ArrivalModel.ButtonRegion)].UnboundType = 
DevExpress.Data.UnboundColumnType.Object;
gridView1.Columns[nameof(ArrivalModel.ButtonRegion)].ColumnEdit = textEdit;
gridControl1.RepositoryItems.Add(textEdit);

0 个答案:

没有答案