![]() |
Мерцание при перерисовке картинок C#
Здравствуйте!
Если кто знает, как можно улучшить, буду признателен. На данном этапе на панель можно добавлять элементы последовательно в цепь, передвигать их, как бы состыковывать, чтобы получить общий рисунок. но при добавлении на панель большого количества элементов при перерисовке все элементы начинают мерцать, и чем больше элементов, тем сильнее. Как можно от этого избавиться??? Описание отдельного класса Элемент: Код:
using System;Код:
using System; |
Чувак я тебе же пример показывал как с помощью OnPaint рисовать. Зачем тебе public void Draw(Graphics g) если можно OnPaint'ом обойтись и мерцания небудет ;)
|
foreach нагружает производительность больше чем for. по этому в designerPanel_Paint используй цикл for. в целом, использование array вместо коллекций может тоже выжать немного скорости. а вообще в критических случаях для работы с графикой лучше подходит directX.
|
google -> двойная буферизация c sharp
и будет тебе счастье =) ---------------------- суть в том, что мы рисуем(когда необходимо отрисовать что-либо) на битмэп. А потом, подменяем изображение на контроле на уже готовое. |
BrainDeaD
Будет мерцать чуть побыстрее XD |
Цитата:
|
cheater_man
Не совсем так. Не получается потому, что когда вызывается стандартная перерисовка то всё что вы отрисовали сбрасывается на дефолтное изображение. (А это можно обойти) |
Цитата:
Использовать ArrayList, для хранения местоположения каждой картинки: Код:
protected override void OnPaint(PaintEventArgs e)Без мерцания. Ну а конечно наилучший метод это ArrayList+IEnumerator+Container+Collection. Идиальный результат получается. |
а как отрисовывать элементы с помощью OnPaint, но только не ан форме, а на панели??
|
| Время: 06:35 |