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

 FillPie(e.Graphics, new SolidBrush(Color.Green),

  120, 160, 100, 100, 46, 90);

 FillPie(e.Graphics, new SolidBrush(Color.Yellow),

  120, 160, 100, 100, 91, 120);

 FillPie(e.Graphics, new SolidBrush(Color.Blue),

  120, 160, 100, 100, 121, 260);

 FillPie(e.Graphics, new SolidBrush(Color.Red),

  120, 160, 100, 100, 261, 360);

}

Результат работы этой программы показан на рис. 6.2.

Рис. 6.2. Создание секторов

<p>Создание фонового рисунка для формы</p>

К сожалению, .NET Compact Framework не поддерживает свойство BackgroundImage, которое создает фоновый рисунок для формы. Но каждый программист может восполнить данный пробел, переопределяя метод OnPaint.

Нужно создать новый проект и разместить на форме какой-нибудь элемент управления, например кнопку. Кнопка не будет выполнять никаких функций. Она потребуется лишь для демонстрации технологии. Также надо добавить в проект изображение, которое будет использоваться в качестве фона для формы. В нашем примере картинка будет внедрена в программу как ресурс, хотя можно загрузить ее из обычного графического файла. Чтобы все работало так, как запланировано, необходимо переопределить метод OnPaint(). Новый код метода приведен в листинге 6.16.

Листинг 6.16

protected override void OnPaint(PaintEventArgs e) {

 // получим картинку из ресурсов Bitmap

 backgroundImage = new Bitmap(Assembly.GetExecutingAssembly().

  GetManifestResourceStream("BackgroundImageCS.sochicat.jpg"));

 e.Graphics.DrawImage(backgroundImage, this.ClientRectangle,

  new Rectangle(0, 0, backgroundImage.Width, backgroundImage.Height),

 GraphicsUnit.Pixel);

}

После запуска программы можно будет увидеть, что форма имеет фоновый рисунок, а кнопка расположена поверх фона (рис. 6.3).

Рис. 6.3. Заполнение фона формы своим рисунком

<p>Копирование рисунка</p>

Библиотека .NET Compact Framework 1.0 не поддерживает метод System.Drawing.Image.Clone, позволяющий создать точную копию картинки. Это ограничение легко обходится с помощью создания собственных методов. Кроме того, можно расширить возможности метода и добавить функциональность, позволяющую копировать часть картинки. Соответствующий код приведен в листинге 6.17.

Листинг 6.17

// Копируем всю картинку

protected Bitmap CopyBitmap(Bitmap source) {

 return new Bitmap(source);

}

// Копируем часть картинки

protected Bitmap CopyBitmap(Bitmap source, Rectangle part) {

 Bitmap bmp = new Bitmap(part.Width, part.Height);

 Graphics g = Graphics.FromImage(bmp);

 g.DrawImage(source, 0, 0, part, GraphicsUnit.Pixel);

 g.Dispose();

 return bmp;

}

private void button1_Click(object sender, EventArgs e) {

 Graphics g = CreateGraphics();

 Bitmap myBMP = new Bitmap(@"\windows\banner.gif");

 // Половина ширины картинки

 int left = myBMP.Size.Width / 2;

 // Копируем всю картинку Bitmap

 clone = CopyBitmap(myBMP);

 // копируем левую часть картинки

 Bitmap part =

  CopyBitmap(myBMP, new Rectangle(0, 0, left, myBMP.Size.Height));

 // Выводим три картинки по вертикали:

 // источник, копию и копию левой части

 int y = 10;

 // картинка-источник

 g.DrawImage(myBMP, 10, y);

 y += myBMP.Height + 10;

 // картинка-копия

 g.DrawImage(clone, 10, y);

 y += clone.Height + 10;

 // копия левой части картинки

 g.DrawImage(part, 10, y);

 y += part.Height + 10;

 g.Dispose();

}

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

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

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

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

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

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

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

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

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