Battery Guard for Notebooks - присмотри за своей батарейкой!

Battery Guard for Notebooks - использованные технологии





Быстрая отрисовка индикатора


Для того, чтобы "кирпичик" получился объемным, он рисуется тремя прямоугольниками:

  • Темным тоном - в полный размер (нам нужны нижняя и правая линии).
  • Светлым тоном - на один пиксель меньше (нам нужны верхняя и левая линии).
  • Основным тоном - с отступом в один пиксель вправо-вниз и на два пикселя меньше (нам нужна середина).

Попытка рисовать кирпичики непосредственно в окне индикатора привела к мельканию индикатора на машинах со слабой видеокартой (eee-pc).
Поэтому пришлось воспользоваться заранее подготовленной кистью в виде одного кирпичика.

Сначала рисуем один кирпичик. Делаем мы это всегда в горизонтальном режиме:

  Bitmap bmpRect = new Bitmap(AddPos, nSize);
  Graphics grRect = Graphics.FromImage(bmpRect);
  grRect.FillRectangle(Brushes.Black, 0, 0, AddPos, nSize);
  grRect.FillRectangle(DarkBrush, 0, 0, AddPos - 1, nSize);
  grRect.FillRectangle(LightBrush, 0, 0, AddPos - 2, nSize - 1);
  grRect.FillRectangle(MainBrush, 1, 1, AddPos - 3, nSize - 2);
                         
Здесь:

  • AddPos и nSize - соответственно, длина и толщина кирпичика.
  • MainBrush - основной цвет.
  • DarkBrush и LightBrush - соответственно, темный и светлый тон.

Затем, в вертикальном режиме переворачиваем рисунок (в горизонтальном ничего не делаем):

  // В вертикальном режиме - поворачиваем прямоугольник
  bmpRect.RotateFlip(RotateFlipType.Rotate90FlipNone);
                         

Осталось создать кисть:

  // Готовим кисть
  TextureBrush Bru = new TextureBrush(bmpRect);
                         

Полученной кистью рисуем в функции отрисовки нужную часть индикатора. Оставшуюся часть индикатора закрашиваем черным.
В результате всех этих манипуляций получаем два преимущества, которые избавляют нас от мелькания:

  • Рисование производится в два приема.
  • Отсутствует предваритальное стирание изображения.
Все красиво, ничего не мелькает, чего мы, собственно, и добивались.





Alex Konuhoff.






Поиск:

Система Orphus Narod ный каталог сайтов
Rambler's Top100
Яндекс цитирования Проверить тиц pr
Анализ сайта Анализ сайта
Агрегатор новостей Webground
ProtoPlex: программы, форум, рейтинг, рефераты, рассылки!
Сайт управляется системой uCoz