» » » Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание


Авторские права

Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Здесь можно скачать бесплатно "Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство Издательский дом "Вильямс", год 2007. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Рейтинг:
Название:
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Издательство:
Издательский дом "Вильямс"
Год:
2007
ISBN:
ISBN 5-8459-1124-9
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание"

Описание и краткое содержание "ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание" читать бесплатно онлайн.



В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML. Книга содержит множество примеров программного кода, призванного помочь читателю в освоении предлагаемого материала. Программный код примеров можно загрузить с Web-сайта издательства.






 //… и прямоугольника, содержащего текст.…

 Rectangle r = new Rectangle (150, 10, 130, 60);

 g.DrawRectangle(Pens.Blue, r);

 g.DrawString("Эй, вы, там, наверху!… Я вам привет передаю.", new Font("Arial", 11), Brushes.Black, r);

}

Заметьте, что тип Pen, применяемый для отображения многоугольника, использует перечень DashStyle (определенный в System.Drawing.Drawing2D).

public enum DashStyle {

 Solid, Dash, Dot,

 DashDot, DashDotDot, Custom

}

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

private void MainForm_Paint(object sender, PaintEventArgs e) {

 Graphics g = e.Graphics;

 …

 // Рисование прерывистой линии вдоль границы формы

 // по пользовательскому шаблону.

 Pen customDashPen = new Pen(Color.BlueViolet, 10);

 float[] myDashes = {5.0f, 2.0f, 1.0f, 3.0f};

 customDashPen.DashPattern = myDashes;

 g.DrawRectangle(customDashPen, ClientRectangle);

}

На рис. 20.12 показан вывод этого варианта обработчика событий Paint.

Исходный код. Проект CustomPenApp размещен в подкаталоге, соответствующем главе 20.

Рис. 20.12. Работа с типами Pen

Концы линий

Если рассмотреть вывод предыдущего примера, вы должны заметить, что начало и конец каждой линии там оформлен вполне стандартно – линия "срезается" под углом 90° к ее направлению. Но, используя перечень LineCap, вы имеете возможность создавать объекты Pen, демонстрирующие иное поведение.

public enum LineCap {

 Flat, Square, Round,

 Triangle, NoAnchor,

 SquareAnchor, RoundAnchor,

 DiamondAnchor, ArrowAnchor,

 AnchorMask, Custom

}

Следующее приложение отображает набор линий, по очереди используя каждый из стилей LineCap. Конечный результат показан на рис. 20.13.

Рис. 20.13. Работа с концами линий

В соответствующем программном коде просто используется цикл по всем членам перечня LineCap с выводам имени соответствующего элемента (например, ArrowAnchor) и отображением линии с соответствующим оформлением ее концов.

private void MainForm_Paint(object sender, PaintEventArgs e) {

 Graphics g = e.Graphics;

 Pen thePen = new Pen(Color.Black, 10);

 int yOffSet = 10;

 // Получение всех членов перечня LineCap.

 Array obj = Enum.GetValues(typeof(LineCap));

 // Рисование линии для данного члена LineCap.

 for (int х = 0; х ‹ obj. Length; x++) {

  // Получение следующего стиля конца линии и настройка пера.

  LineCap temp = (LineCap)obj.GetValue(x);

  thePen.StartCap = temp;

  thePen.EndCap = temp;

  // Вывод имени из перечня LineCap.

  g.Drawstring(temp.ToString(), new Font("Times New Roman", 10), new SolidBrush(Color.Black), 0, yOffSet);

  // Рисование линии с соответствующим стилем концов.

  g.DrawLine(thePen, 100, yOffSet, Width – 50, yOffSet);

  yOffSet += 40;

 }

}

Исходный код. Проект PenCapApp размещен в подкаталоге, соответствующем главе 20.

Работа с типами Brush

Типы, производные от System.Drawing.Brush, используются для заполнения имеющегося региона заданным цветом, узором или изображением. Сам класс Brush является абстрактным типом, поэтому он не позволяет создать соответствующий экземпляр непосредственно. Однако Brush может играть роль базового класса для родственных ему типов кисти (например, SolidBrush, HatchBrush, LinearGradientBrush и т.д.). Кроме относящихся к Brush типов, пространство имей System.Drawing определяет также два вспомогательных класса, возвращающие кисти, уже сконфигурированные с помощью ряда статических свойств: это классы Brushes и SystemBrushes. Так или иначе, получив кисть, вы получаете возможность вызвать любой из методов FillXXX() типа Graphics.

Интересно то, что на основе кисти вы можете создать пользовательский тип Pen. Подобным образом вы можете создать себе любую подходящую кисть (кисть, которая "рисует" точечное изображение) и выполнять визуализацию заданных геометрических шаблонов с помощью сконфигурированного объекта Pen. Для примера рассмотрите следующий вариант программы, в котором используются различные кисти.

private void MainForm_Paint(object sender, PaintEventArgs e) {

 Graphics g = e.Graphics;

 // Создание SolidBrush синего цвета.

 SolidBrush blueBrush = new SolidBrush(Color.Blue);

 // Получение готовой кисти из типа Brushes.

 SolidBrush pen2 = (SolidBrush)Brushes.Firebrick;

 // Визуализация некоторых шаблонов.

 g.FillEllipse(blueBrush, 10, 10, 100, 100);

 g.FillPie(Brushes.Black, 150, 10, 120, 150, 90, 80);

 // Рисование пурпурного полигона…

 SolidBrush brush3= new SolidBrush(Color.Purple);

 g.FillPolygon(brush3, new Point[]{ new Point(30, 140), new Point(265, 200), new Point(100, 225), new Point(190, 190), new Point(50, 330), new Point(20, 180) });

 // … и прямоугольника, содержащего текст

 Rectangle r = new Rectangle(150, 10, 130, 60);

 g.FillRectangle(Brushes.Blue, r);

 g.DrawString("Эй, вы, там, наверху!… Я вам привет передаю.", new Font("Arial", 11), Brushes.White, r);

}

Надеюсь, вы согласитесь, что это приложение почти идентично созданной выше программе CustomPenApp, но использует методы FillXXX() и типы SolidBrush вместо перьев и соответствующим им методов DrawXXX(). На рис. 20.14 показан соответствующий вывод.

Исходный код. Проект SolidBrushApp размещен в подкаталоге, соответствующем главе 20.

Рис. 20.14. Работа с типами Brush

Работа с HatchBrush

В пространстве имен System.Drawing.Drawing2D определен производный от Brush тип с именем HatchBrush. Этот тип позволяет закрасить регион, используя один из (очень большого) набора встроенных видов узоров, представленных перечнем HatchStyle. Вот часть соответствующего списка имен.

public enum HatchStyle {

 Horizontal, Vertical, ForwardDiagonal,

 BackwardDiagonal, Cross, DiagonalCross,

 LightUpwardDiagonal, DarkDownwardDiagonal,

 DarkUpwardDiagonal, LightVertical,

 NarrowHorizontal, DashedDownwardDiagonal,

 SmallConfetti, LargeConfetti, ZigZag,

 Wave, DiagonalВrick, Divot, DottedGrid, Sphere,

 OutlinedDiamond, SolidDiamond,

 …

}

При конструировании HatchBrush вы должны указать цвет для переднего плана и цвет для фона, которые будут использоваться при выполнении операции закрашивания. Для примера давайте немного подкорректируем программную логику из приведенного выше примера PenCapApp.

private void MainForm_Paint(object sender, PaintEventArgs e) {

 Graphics g = e.Graphics;

 int yOffSet = 10;

 // Получение всех членов перечня HatchStyle.

 Array obj = Enum.GetValues(typeof(HatchStyle));

 // Отображение овалов для первых 5 значений из HatchStyle.

 for (int x = 0; x ‹ 5; x++) {

  // Конфигурация кисти.

  HatchStyle temp = (HatchStyle)obj.GetValue(x);

  HatchBrush theBrush = new HatchBrush(temp, Color.White, Color.Black);

  // Вывод имени из перечня HatchStyle.

  g.DrawString(temp.ToString(), new Font (''Times New Roman", 10), Brushes.Black, 0, yOffSet);

  // Закраска объекта подходящей кистью.

  g.FillEllipse(theBrush, 150, yOffSet, 200, 25);

  yOffSet += 40;

 }

}

В окне вывода будут показаны заполненные овалы для первых пяти значений видов штриховки (рис. 20.15).

Рис. 20.15. Некоторые стили штриховки

Исходный код. Проект BrushStyles размещен в подкаталоге, соответствующем главе 20.

Работа с TextureBrush

Тип TextureBrush позволяет связать с кистью точечное изображение, чтобы затем использовать ее в операциях закрашивания. Чуть позже будет подробно обсуждаться класс image (изображение) GDI+. Типу TextureBrush предоставляется ссылка на image, используемая этим типом в течение всего цикла его существования. Само изображение обычно хранится в некотором локальном файле (*.bmp. *.gif, *.jpg) или же встроено в компоновочный блок .NET.

Давайте построим пример приложения, использующего тип TextureBrush. Одна кисть будет использоваться дня закраски области клиента изображением из файла clouds.bmp, в то время как другая кисть будет выводить текст с помощью изображения, находящегося в файле Soap bubbles.bmp. Соответствующий вывод показан на рис. 20.16.

Рис. 20.16. Точечные рисунки в качестве кисти

Ваш производный от Form класс должен поддерживать два члена типа Brush, которым присваивается новый объект TextureBrush в конструкторе. Обратите внимание на то, что конструктору типа TextureBrush требуется предоставить на вход тип, производный от Image.

public partial class MainForm: Form {

 // Данные для кисти с изображением.

 private Brush texturedTextBrush; private Brush texturedBGroundBrush;

 public MainForm() {

  …


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание"

Книги похожие на "ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Эндрю Троелсен

Эндрю Троелсен - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание"

Отзывы читателей о книге "ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.