DrawPie(e.Graphics, new Pen(Color.Red), 130, 165, 100, 100, 0, 45);
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. Создание секторов
Создание фонового рисунка для формы
К сожалению, .NET Compact Framework не поддерживает свойство
BackgroundImage
, которое создает фоновый рисунок для формы. Но каждый программист может восполнить данный пробел, переопределяя метод
OnPaint
.
Нужно создать новый проект и разместить на форме какой-нибудь элемент управления, например кнопку. Кнопка не будет выполнять никаких функций. Она потребуется лишь для демонстрации технологии. Также надо добавить в проект изображение, которое будет использоваться в качестве фона для формы. В нашем примере картинка будет внедрена в программу как ресурс, хотя можно загрузить ее из обычного графического файла. Чтобы все работало так, как запланировано, необходимо переопределить метод
new Rectangle(0, 0, backgroundImage.Width, backgroundImage.Height),
GraphicsUnit.Pixel);
}
После
запуска программы можно будет увидеть, что форма имеет фоновый рисунок, а кнопка расположена поверх фона (рис. 6.3).
Рис. 6.3. Заполнение фона формы своим рисунком
Копирование рисунка
Библиотека .NET Compact Framework 1.0 не поддерживает метод
System.Drawing.Image.Clone
, позволяющий создать точную копию картинки. Это ограничение легко обходится с помощью создания собственных методов. Кроме того, можно расширить возможности метода и добавить функциональность, позволяющую копировать часть картинки. Соответствующий код приведен в листинге 6.17.