Основы программирования на C#. Простейшие графические возможности
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
рифт Arial, размер 10.DrawString("Привет!",fnt, Brushes.Green,10,20);
Пример 1. Создадим приложение, которое при щелчке левой кнопкой мыши на окне приложения выводит в месте щелчка прямоугольник с текстом координатами левого верхнего угла прямоугольника, а при щелчке правой кнопкой мыши в месте щелчка выводится закрашенный эллипс.
Для этого создайте проект Windows Application. В окне свойств формы выбрать событие MouseDown, дважды щелкнуть на названии события мышкой. В появившейся заготовке метода-обработчика события вставить код, чтобы тело метода выглядело следующим образом:
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{dc = CreateGraphics();fnt = new Font("Coyrier",10);(e.Button.ToString()== "Left")
{.DrawRectangle(Pens.OrangeRed,e.X,e.Y,15,15);.DrawString("X="+e.X.ToString()+" Y="+e.Y.ToString(),fnt,Brushes.Green,e.X,e.Y+20);
}(e.Button.ToString()== "Right")
{.DrawEllipse(Pens.Magenta,e.X,e.Y,20,15);.FillEllipse(Brushes.Blue,e.X,e.Y,20,15);
}
}
Скомпилируйте приложение. Проанализируйте полученные результаты.
Задание.
). Создайте приложение, в котором по нажатию клавиши мыши в месте щелчка выводилось название нажатой клавиши мыши.
). Создайте приложение, в котором при щелчке на правую кнопку мыши рисовалась линия, соединяющая координату щелчка с левым верхним углом окна приложения.
). Создайте приложение, в котором выводился след движения мыши (использовать функцию рисования линии).
Перерисовка окна приложения
Если свернуть окно приложения из предыдущего примера, затем вновь развернуть его, то мы, к сожалению, заметим, что изображение на поверхности окна исчезло. Операционная система не восстанавливает содержимого окна. Восстановлением графики и текста должно заниматься само приложение. Операционная система в необходимых случаях вырабатывает сообщение (событие Paint), которое говорит, что окно приложения не корректно и его необходимо перерисовать. Перерисовка окна должна происходить по событию Paint. Метод-обработчик этого события имеет заголовок:
void Form_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
Для этого метода нет необходимости создавать контекст устройства, он передается методу с помощью параметра e. Для получения контекста устройства необходимо выполнить следующую операцию:dc = e.Graphics;
В теле этой функции необходимо выполнить все действия для перерисовки окна.
Очень часто перерисовка окна должна происходить в определенные моменты времени по инициативе приложения. Это бывает необходимо при выводе на экран анимации. Заставить операционную систему выработать событие Paint можно путем вызова метода Invalidate(), который является членом System.Windows.Forms.Form. Существуют несколько перегруженных версий этого метода. Одна из них принимает в качестве параметра прямоугольник, который определяет область окна для перерисовки. Используемая нами версия без параметров перерисовывает все окно.
Пример 2. Создадим приложение, в котором при запуске появляется прямоугольник, ширина которого увеличивается через каждые 150мс на 5 пикселей.
. Объявим в классе Form1 переменную:
private int xWidth;
2. Создадим метод-обработчик события Paint, для этого в свойствах формы выберем событие Paint и щелкнем по нему. После редактирования тела метода, метод должен иметь вид:
void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{dc = e.Graphics;.DrawRectangle(Pens.RoyalBlue,10,100,xWidth,50);
}
3. Перенесем на форму Timer из Toolbox, затем в свойствах таймера установим свойство Enable в true и Interval в 150.
. Далее двойным щелчком мыши по таймеру создаем метод-обработчик таймера. После редактирования тела метода, метод должен иметь вид:
void timer1_Tick(object sender, System.EventArgs e)
{+= 5;();
}
Задания:
). Создать приложение, в котором появляется маленький прямоугольник, который увеличивается (эффект наезда).
). Создать приложение, в котором в момент создания формы появляются два прямоугольника равных размеров и координат, затем прямоугольники начинают разъезжаться по разным углам окна (по диагонали).
А). Нарисовать минимальный по размеру прямоугольник, включающий в себя оба прямоугольника.
Б). Нарисовать прямоугольник, являющийся пересечением исходных прямоугольников.