Я хочу попросить совета по оптимизации перекраски в Compact Framework?GetHashCode () не помог, потому что он всегда возвращает другой хэш-код.
В любом случае, у меня есть программа, которую вы можете перетаскивать и изменять размер объекта во время выполнения.Этот объект является прозрачным объектом и имеет изображение PNG, которое также динамически изменяет размер относительно размера объекта клиента.
Хотя я заметил, (например, у меня есть 4 прозрачных объекта, и я перетаскиваю или изменяю их размер), все 4 из них вызывают OnPaintBackground, даже если 3 не перемещаются.Еще один, когда я просто нажимаю на один объект .. это вызывает срабатывание onPaintBacground ().В любом случае, у меня нет проблем, когда эти события запускаются.
Что мне нравится делать, так это оптимизация, и это означает, что мне нужно перекрашивать объект только тогда, когда это необходимо.ребята, пожалуйста, дайте предложения?
вот мой псевдо-код C #
Bitmap _backBuff;
onResize() {
if(_backBuff != null) _backBuff.Dispose();
_backBuff = new Bitmap(ClientSize.Width, ClientSize.Height);
Invalidate();
}
onPaintBackground(e) /*have to use onPaintBackground because MSDN said it's faster*/ {
using(Graphics g = Graphics.FromImage(_backBuff)) {
g.Clear(Color.Black);
// draw background
....some interface calling here
....and paint the background
// draw alpha PNG
.. get hDc
.. paint PNG
.. release hDc
}
e.Graphics.DrawImage(_backBuff,0,0);
}
Заранее спасибо.