1. Въведение в графиката C#

 

В класа Form1 трябва да бъде описан специален, защитен и предефиниран (protected override), метод за обработка на събитието OnPaint с един аргумент – обект e от класа PaintEventArgs.

От свойството Graphics на е се създава чертожно поле – обект g от класа Graphics

Обекта g ще съдържа (ще създадем в него) нашето графично изображение

protected override void OnPaint(PaintEventArgs e)

{

Graphics g = e.Graphics;

}

 

Този метод се изпълнява при отварянето на формата и съобщава на програмата, че вътрешността на екранната форма, няма да се използва за разполагане на компоненти, а за създаване на графика, чрез програмния код написан за g. Изчертаването на графичните обекти трябва да стане също в този метод.

Чертожно поле

 

Рeалните размери  на чертожното поле, зависят от това, колко голям е прозорецът на програмата. Най-голямо чертожно поле ще получим, ако максимизираме прозореца. Това може да стане програмно със задаване стойност Maximized на свойството WindowsState на формата. 

Текущите размери на чертожното поле на формата се съдържат в свойствата ClientSize. Width – ширина и ClientSize.Height – височина на чертожното поле.

Чертожен инструмент

 

Чертожният инструмент, който избираме, се характеризира основно с цвета и дебелината на следата, която оставя в чертожното поле. Тези и други характеристики, са обобщени в класа Pen. Затова, преди да започнем изчертаването, трябва да създадем обект от този клас:

 

Pen p = new Pen(<цвят>, <дебелина>);

Цветът е обект от класа Color със 140 свойства, всяко от които е някакъв цвят и се избира от списъчна кутия, която се отваря след написване на знака точка след името на класа.

Дебелината на линията е число от тип float,  и може да считеме, че закръглено до цяло число, то означава брой пиксели. Всяка стойност на дебелината по-малка от 1 се приема за дебелина 1.

Операторът Pen p = new Pen(Color.Red,-3);, например, създава писалка с червен цвят и дебелина 1 пиксел.

Ако искаме да създадем писалка с цвят, който не е измежду включените като свойства на класа Color, трябва да използваме статичния метод Color.FromArgb(<червен>, <зелен>, <син>), който задава цвят, базиран на модела RGB.

 

Pen p = new Pen(Color.FromArgb(49,226,29),2);

Фонов цвят на чертожното поле 

Фоновият цвят на чертожното поле се задава като стойност на свойството й BackColor. Друг начин за смяна на фоновия цвят на полето е с метода Clear на класа Graphics. Той има един параметър, който е обект от класа Color:

 

g.Clear(Color.Red); или

g.Clear(Color.FromArgb(20,140,60)); 

Пример

namespace graphicsNew

{

    public partial class Form1 : Form

    {

        protected override void OnPaint(PaintEventArgs e)

        {

            Graphics g = e.Graphics;

            g.Clear(Color.FromArgb(255, 0, 0));

        }

        public Form1()

        {

            InitializeComponent();

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

         

        }

    }

}

 

 

Търсене