myBitmap = new System.Drawing.Bitmap(pictureBox1.Width, pictureBox1.Height);

 //--------------------------------------------------------------------------

 //Создать объект Graphics, чтобы иметь возможность рисовать на битовой карте

 //--------------------------------------------------------------------------

 System.Drawing.Graphics myGfx;

 myGfx = System.Drawing.Graphics.FromImage(myBitmap);

 //Закрасить нашу битовую карту желтым цветом

 myGfx.Clear(System.Drawing.Color.Yellow);

 //Создать перо

 System.Drawing.Pen myPen;

 myPen = new System.Drawing.Pen(System.Drawing.Color.Blue);

 //-----------------

 //Нарисовать эллипс

 //-----------------

 myGfx.DrawEllipse(myPen, 0, 0, myBitmap.Width - 1, myBitmap.Height -1);

 //Создать сплошную кисть

 System.Drawing.Brush myBrush;

 //-----------------------

 //Нарисовать текст кистью

 //-----------------------

 myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Black);

 //Примечание: Мы используем объект Font из формы

 myGfx.DrawString("Hello!",this.Font, myBrush, 2, 10);

 //------------------------------

 //Важно! Очистить все после себя

 //------------------------------

 myGfx.Dispose;

 myPen.Dispose;

 myBrush.Dispose;

 //-------------------------------------------------------------------

 //Указать объекту pictureBox, на необходимость отображения растрового

 //изображения, которое мы только что создали и нарисовали.

 //-------------------------------------------------------------------

 pictureBox1.Image = myBitmap;

}

Рисование непосредственно в форме

Для рисования в форме существует два способа:

1. Создайте объект Graphics для формы и используйте этот объект для создания нужных рисунков.

2. Подключитесь к функции OnPaint для формы и получите объект Graphics, который можно будет использовать для рисования.

Создание объекта Graphics для формы и рисование на нем обычно применяются лишь изредка, поскольку в этом случае любой созданный вами рисунок не существует постоянно. Форма с удовольствием предоставит вашему приложению свою поверхность для рисования всего, что вам заблагорассудится, но не будет запоминать нарисованное. Это означает, что если форма по какой-либо причине будет перерисована, то все, что нарисовал ваш код, исчезнет. Поэтому данный метод не годится для графики, которую вы хотите сохранять на экране в течение длительных периодов времени. Так, описанный способ плохо подходит для вычерчивания диаграмм, которые пользователь будет просматривать на своем мобильном устройстве, поскольку ваше приложение не в состоянии контролировать, когда именно отображаемая картинка будет частично или полностью перекрыта другим изображением. Вместе с тем, данный метод может оказаться полезным в тех случаях, когда все экранное изображение все время полностью перерисовывается, как это происходит, например, в играх. Если изображение перерисовывается несколько раз в секунду, то не имеет никакого значения, является ли оно постоянно существующим или нет.

Эта методика рисования проиллюстрирована в листинге 11.7. Для создания и запуска данного приложения необходимо выполнить следующие действия:

1. Начните новый проект Smart Device в Visual Studio .NET и выберите в качестве целевой платформы Pocket PC.

2. Добавьте в форму Form кнопку Button.

3. Дважды щелкните на кнопке Button1 в окне конструктора форм; в результате этого будет создан и подключен к кнопке приведенный ниже обработчик событий button1_Click. Введите приведенный в листинге 11.7 код, который реагирует на это событие.

4. Скомпилируйте пример и запустите его на выполнение. Щелкните на кнопке Button1.

Листинг 11.7. Создание объекта Graphics для формы
Перейти на страницу:

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