Читаем Программирование КПК и смартфонов на .NET Compact Framework полностью

  new Rectangle(0, 0, imgCat.Width, imgCat.Height), GraphicsUnit.Pixel);

 ImageAttributes attr = new ImageAttributes();

 // Устанавливаем красный цвет как прозрачный

 attr.SetColorKey(Color.Red, Color.Red);

 // Выводим вторую картинку с установленными атрибутами

 Rectangle dstRect = new Rectangle(50, 120, imgName.Width, imgName.Height);

 g.DrawImage(imgName, dstRect, 0, 0,

  imgName.Width, imgName.Height, GraphicsUnit.Pixel.attr);

 g.Dispose();

}

ВНИМАНИЕ

He забудьте импортировать пространство имен System.Drawing.Imaging при работе с этим примером.

Если просто наложить одну картинку на другую, то результат будет, мягко говоря, не очень красивым (рис. 6.5).

Рис. 6.5. Неудачный вариант наложения двух картинок

Если же воспользоваться методом SetColorKey для установки прозрачного цвета, то результат наложения двух изображений будет выглядеть достойно (рис. 6.6).

Рис. 6.6. Наложение картинки с использованием прозрачности

<p>Округленные прямоугольники</p>

Так как .NET Compact Framework не позволяет создавать округленные прямоугольники встроенными средствами, то необходимо самостоятельно реализовать эту задачу. В этом разделе будет рассматриваться решение, предложенное Алексом Яхниным (Alex Yakhnin) в его блоге blog.opennetcf.org/ayakhnin/. Для достижения заданного эффекта надо нарисовать серию линий, которые соединяют эллипсы, и закрасить внутреннюю область сплошным цветом (рис. 6.7).

Рис. 6.7. Создание прямоугольника со скругленным углами

Соответствующий код приведен в листинге 6.19.

Листинг 6.19

public static void DrawRoundedRectangle(Graphics g, Pen p, Color backColor,

 Rectangle rc, Size size) {

 Point[] points = new Point[8];

 // подготовим точки для фигуры

 points[0].X = rc.Left + size.Width / 2;

 points[0].Y = rc.Top + 1;

 points[1].X = rc.Right - size.Width / 2;

 points[1].Y = rc.Top + 1;

 points[2].X = rc.Right;

 points[2].Y = rc.Top + size.Height / 2;

 points[3].X = rc.Right;

 points[3].Y = rc.Bottom - size.Height / 2;

 points[4].X = rc.Right - size.Width / 2;

 points[4].Y = rc.Bottom;

 points[5].X = rc.Left + size.Width / 2;

 points[5].Y = rc.Bottom;

 points[6].X = rc.Left + 1;

 points[6].Y = rc.Bottom - size.Height / 2;

 points[7].X = rc.Left + 1;

 points[7].Y = rc.Top + size.Height / 2;

 // приготовим кисть для фона

 Brush fillBrush = new SolidBrush(backColor);

 // рисуем отрезки и круги для округленного прямоугольника

 g.DrawLine(p, rc.Left + size.Width / 2, rc.Top,

  rc.Right - size.Width / 2, rc.Top);

 g.FillEllipse(fillBrush, rc.Right - size.Width, rc.Top,

  size.Width, size.Height);

 g.DrawEllipse(p, rc.Right - size.Width, rc.Top, size.Width, size.Height);

 g.DrawLine(p, rc.Right, rc.Top + size.Height / 2, rc.Right,

  rc.Bottom - size.Height /2);

 g.FillEllipse(fillBrush, rc.Right - size.Width, rc.Bottom - size.Height,

  size.Width, size.Height);

 g.DrawEllipse(p, rc.Right - size.Width, rc.Bottom - size.Height,

  size.Width, size.Height);

 g.DrawLine(p, rc.Right - size.Width / 2, rc.Bottom,

  rc.Left + size.Width / 2, rc.Bottom);

 g.FillEllipse(fillBrush, rc.Left, rc.Bottom - size.Height,

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных