2009-05-29 3 views
0

У меня есть владелец ListView, который «мажет» при прокрутке. Это влияет только на последний отображаемый элемент, как он перемещается в Видны списка ...Владелец Draw ListView «размытие» при прокрутке

Это выглядит следующим образом:

Бла Бла

Бла

... все были нарисованы друг на друга на расстоянии 1 пиксель. Код в случае DrawItem имеет вид

Rectangle rect = new Rectangle(e.Bounds.X + mIconSize.Width, 
    e.Bounds.Y, e.Bounds.Width, e.Bounds.Height); 
e.Graphics.DrawString(episode.ToString(), this.Font, mBlackBrush, rect); 

Я полностью тупик. Любые идеи с благодарностью оценили! Dave

+0

Это не проблема буферизации в разрешении (я пробовал это), спасибо за идеи! –

ответ

1

Вы можете активировать двойную буферизацию для ListView, исходя из нее и устанавливая DoubleBuffered = true. Заметное уменьшение мерцания, особенно в режиме Плитки, после включения Double Buffering.

+0

Оказывается, это была проблема с двойной буферизацией. Мне нужно было создать класс, наследующий ListView, и включить двойную буферизацию в конструкторе –

0

также, в собственные свойства формы, вы можете включить DoubleBuffer. Кроме того, есть несколько команд, которые вы можете использовать.

Дополнительная информация может быть найдена путем поиска DoubleBuffer C# в google (извините, как новый пользователь, я не могу отправлять ссылки).

0

Это известная ошибка в элементе управления ListView.

1

Подробно рисунок чертежа делает весь ваш чертеж в DrawSubItem (...). Проблема заключается в том, что drawItem вызывается для первого элемента, а DrawSubitem - для одного и того же элемента ... с немного разными границами.

+0

Это звучит разумно, я попробую! –

Смежные вопросы