Как я могу заменить существующее изображение в WinList ImageList? - PullRequest
0 голосов
/ 23 июня 2009

Как я могу заменить существующее изображение на winforms ImageList?

Я пробовал это:

this.CoolPics.Images [ 2 ] = // new image
this.ListViewControl.SmallImageList = this.CoolPics;

Однако новое изображение не масштабируется так, как другие, когда я использовал метод this.CoolPics.Images.Add.

Что я делаю не так?

Ответы [ 3 ]

1 голос
/ 02 апреля 2016

Я знаю, что это старо, но вот как я решил проблему. Похоже, что список изображений не будет изменять размер изображения при назначении (даже если это происходит при использовании функции Add ()). Таким образом, перед назначением вам необходимо изменить размер изображения вручную.

Image img; //used to load new image from disk
Bitmap bmp = new Bitmap(160, 120); //canvas where the new image will be drawn/resized
Graphics graph = Graphics.FromImage(bmp); //used to draw/resize the new image

img = new Bitmap(fileDialog.FileNames[0]); //load new image from disk

graph.DrawImage(img, new Rectangle(0, 0, 160, 120)); //resize new image to proper size

imgList.Images[index] = bmp; //assign the new resized image to the list (overwrites the old image)
0 голосов
/ 07 августа 2009

Я сталкивался с этим раньше, и если я правильно помню, оператор присваивания имел такое поведение, но Imagelist.Images.Add (myImage) поступил правильно.

Попробуйте изменить код для добавления .Add (myImage) и посмотрите, не выглядит ли это лучше.

0 голосов
/ 26 июня 2009

после вашего кода попробуйте

listView1.Refresh();
...