Работа с типами Brush
Работа с типами 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
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
3.2. Работа с различными типами данных
3.2. Работа с различными типами данных Тип, определяемый пользователемVBA позволяет пользователю определять свои собственные типы данных. Определенный пользователем тип нужен, когда одной переменной необходимо обозначить несколько связанных по смыслу элементов данных,
Знакомство с пользовательскими типами данных
Знакомство с пользовательскими типами данных Пользовательский тип данных VBA представляет собой, так сказать, поселившуюся под одной крышей компанию выбранных вами типов данных. Определив пользовательский тип данных, вы получаете возможность объявлять переменные этого
91. Работайте с типами, а не с представлениями
91. Работайте с типами, а не с представлениями РезюмеНе пытайтесь делать какие-то предположения о том, как именно объекты представлены в памяти. Как именно следует записывать и считывать объекты из памяти — пусть решают типы объектов.ОбсуждениеСтандарт С++ дает очень мало
Эксперименты с числовыми типами данных
Эксперименты с числовыми типами данных Числовые типы .NET поддерживают свойства MaxValue и МinValue, сообщающие информацию о диапазоне данных, которые может хранить данный тип. Предположим, что мы создали несколько переменных типа System.UInt16 (unsigned short – короткое целое без знака), как
Работа с типами StringWriter и StringReader
Работа с типами StringWriter и StringReader Используя типы StringWriter и StringReader, вы можете обращаться с текстовой информацией, как с потоком символов в памяти. Это может оказаться полезным тогда, когда необходимо добавить символьную информацию в соответствующий буфер. В следующем
Работа с типами Windows Forms
Работа с типами Windows Forms При построении приложения Windows Forms вы можете, при желании, создать весь соответствующий программный код вручную (например, в редакторе Блокнот или в редакторе TextPad), а затем отправить файлы *.cs компилятору командной строки C# с флагом /target:winexe.
Фильтры группы Brush Strokes (Штрихи)
Фильтры группы Brush Strokes (Штрихи) Accented Edges (Акценты на краях)Данный фильтр находит и выделяет области с резкими переходами яркости, которые, как правило, являются границами объектов. При этом Accented Edges (Акценты на краях) еще и уменьшает резкость таких областей, немного размывая
Операции с числовыми типами
Операции с числовыми типами * Операции сравнения. Используйте стандартные операторы отношений (=, <, >, >=, <=, <> или !=)[17].Возможны сравнения строк с использованием таких операторов SQL, как CONTAINING, STARTING WITH и LIKE. В данных операциях числа трактуются как строки. Более
Преобразования между типами дата/время и другими типами данных
Преобразования между типами дата/время и другими типами данных Любой символьный тип или выражение, чье содержание может быть выражено в правильном литерале даты, может быть преобразовано в соответствующий тип дата/время.Типы данных времени и даты не могут быть
Класс Brush
Класс Brush Класс Brush является абстрактным классом для создания кистей, с помощью которых можно рисовать фигуры и текст на графической поверхности. Библиотека .NET Compact Framework поддерживает классы SolidBrush и TextureBrush. К сожалению, класс LinearGradientBrush, позволяющий рисовать красивые
Текущая графическая кисть Brush
Текущая графическая кисть Brush Объект текущей кисти возвращается функцией Brush и имеет тип GraphABCBrush: function Brush: GraphABCBrush; Класс GraphABCBrush имеет следующий интерфейс: type GraphABCBrush = class property NETBrush: System.Drawing.Brush; property Color: GraphABC.Color; property Style: BrushStyleType; property Hatch: HatchStyle; property
9.1. Инструмент Brush (Кисть)
9.1. Инструмент Brush (Кисть) Brush (Кисть) – один из наиболее используемых инструментов. Способ его применения настолько прост, что понятен даже ребенку: води себе кистью и наблюдай за полученным результатом. Однако все так просто лишь на первый взгляд. Благодаря большому
9.16. Art History Brush (Художественная кисть истории)
9.16. Art History Brush (Художественная кисть истории) Этот инструмент является производным от History Brush (Кисть истории). Выполняет он примерно то же – перерисовывает с указанного кадра, но делает это по-другому. Art History Brush (Художественная кисть истории), взяв за основу оригинальное
9.17. Spot Healing Brush (Точечная лечащая кисть)
9.17. Spot Healing Brush (Точечная лечащая кисть) Этот инструмент позволяет быстро удалять пятна и другие недостатки с фотографий. Он работает приблизительно как Healing Brush (Лечащая кисть): рисует схожими пикселами изображения или узором и подбирает текстуру, освещение, прозрачность
9.18. Healing Brush (Лечащая кисть)
9.18. Healing Brush (Лечащая кисть) Представляет собой инструмент созданный на основе Clone Stamp (Штамп) и предназначенный в основном для работ, так или иначе связанных с фотомонтажом.Healing Brush (Лечащая кисть) дает возможность копировать новые пикселы, взяв за основу либо изображение