Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 205

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 199 200 201 202 203 204 < 205 > 206 207 208 209 210 211 .. 404 >> Следующая


II Вывод многострочного текста '

Font trFont = new Font ('Times Hew Roman', 12) j rect =* new Rectangle(0, y, 400, trFont.Height * 3) t g.DrawRectangle(Pens,Blue, rect);

String longString = 'This text ia much longer, and drawn longStrlng += 'into a rectangle that is higher than ') longString +=¦ 'one line, so that it will wrap. It is 'j longString += “very easy to wrap text using GDI+.'i g.Drawstring(longString, trFont, Brushes.Black, rect);

// Вызов удаления текста вручнуи trFont.Dispose();

! Forml

ЯНЕЗ

This text Is right justified.

Тмя Lout Ifi centitr*d and underlined*

Ibis text if rourh longer, and drawn *\to a rcctai^e tftal ij higher than one kie, ю that ii wili wrap It a very easy Го wrap text using GDI+._____________________________________________

Теперь нажмите F5, чтобы отко.мпилиронать и запустить программу. Запуск программы приведет к созданию окна, показанного на рисунке слева.

Как это работает

В этом примере содержится несколько наиболее распространенных операций вывода текста в графическом режиме.

Для удобства мы присваиваем ссылку па объект Graphics локальной переменной и закрашиваем фон окна белым цветом.

При рисовании окна мы вычисляем размеры прямоугольника, необходимые для размещения текста.

Высота шрифта определяется с помощью свойства Height. Для наглядности этот прямоугольник рисуется голубым цветом, что позволяет четко выделить прямоугольник, ограничивающий текст. При рисовании мы передаем сам текст, шрифт, тип кисти и ограничивающий прямоугольник:

П Вывод текста, выровненного по левому краю Rectangle rect = new Rectangle(0, у, 400, Font.Height); g.DrawRectangle(Pens.Blue, rect); g.Drawstring('This text is left justified.', Font,

Brushes.Black, rect);

Нами определяется только тот прямоугольник, в котором будет размещаться текст. Основная линия шрифта — это воображаемая линия, на которой “сидят" почти все символы данного шрифта. GDI+ и сам шрифт определяют, где в действительности будет проходить эта линия. Мы не можем управлять этим процессом.

При рисовании текста мы передаем кисть функции Drawstring!). В данном примере передаются только кисти, которые рисуют исключительно сплошным цветом. С тем же успехом мы могли бы передавать и другие разновидности кистей,
Введшие в GDI+

443

в частности, выполняющие рисование с переходом от одного цвета к другому. После того как в следующем разделе мы познакомимся с понятием образов, мы продемонстрируем вывод текста в графическом режиме с использованием TextureBrush.

Для вывода первой порции текста в этом примере берется шрифт, используемый формой по умолчанию. На этот шрифт ссылается свойство Font, которое наследуется от Control:

g.DrawString("This text is left justified,'. Font,

Brushes.Black, rect); -

Для вывода следующей порции текста создадим новый экземпляр объекта Font: Font aFont = new Font('Arial'„ 16, FontStyle.Bold I FontStyle.Italic);

В этом примере демонстрируется не только то, каким образом можно создать новый экземпляр шрифта, но и то, как ему можно придать соответствующий стиль. В данном случае мы используем выделение жнрным шрифтом и курсивом.

Пример также демонстрирует создание объекта StringFormat, в результате чего появляется возможность рисовать текст, выровненный по правому краю илн по центру. В GDI+ для выравнивания текста по правому краю используется термин Far (дальнее), для выравнивания по левому краю — термин Near (ближнее):

StringFormat sf = new StringFonriat(); sf.Alignment = StringAlignment.Far;

Затем выводится некоторый многострочный текст. Нет ничего проще, чем выполнять такую операцию с использованием GDI+. Все, что для этого требуется,— задать прямоугольник, ширина которого меньше длины строки выводимого теста (в пикселях), а высота достаточна для того, чтобы в нем уместилось несколько строк. В данном случае высота прямоугольника превосходит высоту шрифта в три раза,

Рисование с использованием образов

Образы широко применяются в GDI+. Можно рисовать образы в окнах, однако также можно создать кисть (TextureBrush) с неким образом и рисовать с ее помощью различные фигуры, которые затем будут заполнены этим образом. Используя кисть TextureBrush, мы можем создавать объект Реп, который позволит использовать данный образ при рисовании текста. Класс image находится в пространстве имен System.Drawing.

Другим очень важным способом применения образов является специальная техника графического программирования, называемая двойной буферизацией. Иногда рисунок, который необходимо создать, оказывается очень сложным и запутанным, и даже современным быстродействующим компьютерам может потребоваться для его создання значительное время, Вряд ли кому-нибудь будет интересно наблюдать эффект замедленного формирования на экране рисунка. Примерами такого рода могут служить графические приложения н сложные приложения CAD/CAM. При использовании этого способа процедура рисования осуществляется не в окне, а в некотором образе, и, только после того как рисование завершено, этот образ переносятся в окно. Такая техника известна под названием двойной буферизации. Существуют и некоторые другие приемы рисования, например, способ послойного рисования, при котором сначала рисуется фон, затем поверх фона рисуются объекты, а затем поверх этих объектов выводится текст. Если рисование таким способом осуществляется непосредственно на экране, то пользователь наблюдает эффект изменяющейся картинки. Двойная буферизация позволяет избавиться от такого эффекта.
Предыдущая << 1 .. 199 200 201 202 203 204 < 205 > 206 207 208 209 210 211 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.