我的资源有Status_Active和Status_Inactive,这是两个48x48的按钮,颜色为绿色和红色,用于显示用户状态。数据网格视图有2列,一个文本框和一个图像列。
主应用程序返回一个错误,试图获取int32.Height和int32.Width(我猜是图像的)。
我已经尝试过将ImageLayout
设置为Center
来适应它。
var employees = db.Employees.ToList();
// Add a row for each employee
foreach (var employee in employees)
{
using (Image statusIcon = employee.IsActive ? Resources.Status_Active : Resources.Status_Inactive)
{
string fullName = employee.LastName + ", " + employee.FirstName;
dgvStatustableau.Rows.Add(fullName, statusIcon);
}
}`
如何使图像自动适应列?例如16x16或32x32px。GetInt32.Width()
和GetInt32.Height()
用于图像列的目的是什么?
3条答案
按热度按时间dgjrabp21#
您提到您将
ImageMode
设置为Center
,并且您可能希望使用Stretch
。我复制了您的帖子,其中两个嵌入的48 x 48图像是表示绑定数据集中的行的类的一部分,并被强制到32 x 32显示区域:
主窗体
主表单格式化
DataGridView
并模拟数据库读取数据的位置(因为数据库不是问题的一部分)。fykwrbwg2#
我可以通过调整图标的大小来绘制一个新的位图。
uxh89sit3#
DataGridViewImageColumn具有ImageLayout属性,支持正常、拉伸和缩放:
根据您的问题,您似乎对“缩放”感兴趣。因此,只需分配所需的任何图像,然后将列的ImageLayout属性设置为“缩放”。