我想在listview处于活动状态时更改图像列表图像大小并包含项目。但它似乎只影响新添加的图像,现有图像将变为空白。
这是我的代码:
public Form1()
{
...
imglst_ = new ImageList();
imglst_.ImageSize = new Size(80, 80);
listView1.SmallImageList = imglst_;
listView1.LargeImageList = imglst_;
...
}
//zoom in
//This code only affect the new added image
//the existing images will become blank
private void toolStripZoomin_Click(object sender, EventArgs e)
{
int w = imglst_.ImageSize.Width;
int h = imglst_.ImageSize.Height;
w = (int)(w * 1.2);
h = (int)(h * 1.2);
imglst_.ImageSize = new Size(w, h);
}
答案 0 :(得分:2)
ImageSize
财产状态的文档:
在将图像添加到图像集之前设置
ImageSize
属性会导致图像的大小调整为指定的图像大小。将
ImageSize
属性设置为新值时,Handle
为{ 图像列表被重新创建。因为设置
ImageSize
属性会导致句柄 重新创建,您应该在设置图像之前设置ImageSize 属性。当创建ImageList
的句柄时,设置 设置后,代码中的ColorDepth
或ImageSize
属性 图像属性,将导致为图像集合收集 要删除的图像属性。
因此,在添加图片后无法更改ImageSize
,您应在设置ImageList
后再次将图片添加到ImageSize
,以便在新指定的图片中绘制它们大小