.Net Windows Forms ListView OwnerDraw LargeImageList утечка - PullRequest
3 голосов
/ 16 ноября 2009

Я владелец .Net Windows Forms ListView и вижу очень странную ошибку / поведение, когда мне нужно нарисовать изображение из соответствующего LargeImageList.

Когда тип View является типом, в котором используется LargeImageList (Tile, LargeIcon и т. Д.), Я рисую изображения элементов из LargeImageList. В этом случае я вижу огромное увеличение памяти, и когда вы пытаетесь прокрутить ListView, это становится более очевидным, так как вы также видите прерывистую прокрутку. То же самое не происходит, когда один и тот же код использует SmallImageList, который просто выглядит так:

Image MyImage = this.LargeImageList.Images[MyIndex];
e.Graphics.DrawImage(MyImage,MyLocation);

Это воспроизводимо под XP и 7 согласно моим тестам. Это известная ошибка, какой-нибудь обходной путь?

С уважением,

Özden

Ответы [ 2 ]

3 голосов
/ 16 ноября 2009

Хотя я все еще думаю, что это ошибка, я нашел обходной путь. Если вы рисуете, используя ImageList.Draw вместо e.Graphics.DrawImage , эта проблема исчезнет.

1 голос
/ 16 ноября 2009

Как вы управляете недействительной областью рисования? Как вы говорите, похоже, что вы «перебрасываете» элемент управления, я имею в виду рисование даже тогда, когда в этом нет необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...