Sunteți pe pagina 1din 20

Cercul de programare .

NET ADF

Graphics:
Se poate folosi la imbunatatirea interfetei
utilizator, generarea graficelor, a rapoartelor si la crearea sau editarea de imagini. .NET Framework contine facilitati pentru desenare de linii, forme, modele sau text.

Cercul de programare .NET ADF

Desenarea Grafica
Namespace ul System.Drawing permite crearea de elemente grafice de la zero sau modificarea unor imagini. System.Drawing poate fi folosit:

pentru adaugare dinamica de cercuri, linii sau alte forme in interfata. crearea de grafice editare si redimensionare de imagini modificarea ratei de compresie a imaginilor salvate pe disc

Cercul de programare .NET ADF

Clasele din System.Drawing


Bitmap Brush Brushes ColorConverter ColorTranslator Font FontConverter FontFamily Graphics Icon IconConverter ImageAnimator ImageConverter Image Format Converter Pen Pens PointConverter RectangleConverter Region SizeConverter SolidBrush StringFormat SystemBrushes SystemColor SystemFonts SystemIcons SystemPens TextureBrush ToolboxBitmapAttribute

Cercul de programare .NET ADF

Clasele din System.Drawing


Cel mai des se va folosi clasa Graphics deoarece contine metode pentru desenare, clasa Pen folosita pentru desenare de linii si curbe, iar clasele derivate din clasa abstracta Brushes folosite pentru umplerea interioara a formelor. Familiarizarea cu clasa PictureBox ne va permite afisarea de imagini in Windows Forms ca facand parte din interfata utilizator.

Cercul de programare .NET ADF

Structurile din System.Drawing

Cercul de programare .NET ADF

Specificarea pozitiei si dimensiunii controalelor


Pentru specificarea pozitiei unui control se instantiaza un obiect de tip Point, care primeste coordonatele relative la coltul din stanga sus al formularului si se va folosi acest obiect pentru a seta proprietatea de Location al controlului.

Cercul de programare .NET ADF

Exemplu:
Pentru a muta un buton din coltul din stanga sus cu exact 10 pixeli se va folosi codul: button1.Location = new Point(10,10); Observatie: PointF nu poate fi folosit pentru specificarea pozitiei unui control.
Cercul de programare .NET ADF

Exemplu:
O alta metoda de a seta pozitia unui control, ca o alternativa a folosirii structurii Point , o reprezinta apelarea proprietatilor Left, Top, Right si Bottom, din cadrul controlului. Dezavantajul este ca se folosesc mai multe linii de cod. Button1.Left = 10; Button1.Top = 10;
Cercul de programare .NET ADF

Specificarea culorii unui control


Se poate specifica culoarea unui control folosind proprietatile predefinite din cadrul

System.Drawing.Color Button1.ForeColor = Red; Button1.BackColor = Blue;

Daca se doreste folosirea unei anumite nuante de culori vom apela Color.FromArgb, metoda care are diferite supraincarcari: se poate specifica o culoare printr-un singur byte, sau precizand nivelul de rosu, verde si albastru, ori alte informatii.

Cercul de programare .NET ADF

Exemplu:
Urmatorul exemplu ne arata cum sa selectam o culoare prin precizarea nivelurilor de rosu, verde si albastru:

Button1.ForeColor = Color.FormArgb(10,200,200); Button1.BackColor = Color.FormArgb(10,200,200);

Cercul de programare .NET ADF

Desenare de linii si forme:


Pentru desenarea pe un formular sau control se urmeaza pasii: 1. Se creeaza un obiect de tip Graphics prin apelarea metodei System.Windows.Forms.Control.CreateGraphics 2. Se creeaza un obiect de tip Pen. 3. Prin obiectul Graphics instantiat se apeleaza metoda de desenare ce se foloseste de obiectul Pen.

Cercul de programare .NET ADF

Metode de desenare:

Clear - Sterge toata suprafata de desenare. DrawEllipse deseneaza o elipsa sau un cerc, marginite de un dreptunghi (definit de o pereche de coordonate, inaltime, si latime). DrawIcon si DrawIconUnstretched deseneaza o imagine reprezentata de un icon specificat, scalat sau nescalat la o pozitie precizata. DrawImage, DrawImageUnscaled, DrawImageUnscaledAndClipped - deseneaza o imagine specificata, scalata/nescalata sau taiata la o pozitie data. DrawLine deseneaza o linie ce uneste doua puncte.

Cercul de programare .NET ADF

Metode de desenare:
DrawLines deseneaza o serie de segmente ce conecteaza un array de obiecte de tip Point. DrawPath deseneaza o serie de linii conectate si curbe. DrawPie deseneaza o bucata de elipsa specificata de o pereche de coordonate, o latime, o inaltime, si doua linii. DrawPolygon - deseneaza o forma geometrica cu 3 sau mai multe laturi definite intr-un sir de obiecte de tip Point. DrawRectangle deseneaza un dreptunghi sau un patrat.

Cercul de programare .NET ADF

Exemplu:
// Creeaza un obiect grafic Graphics g = this.CreateGraphics(); // Creeaza un obiect de tip Pen cu care desenam Pen p = new Pen(Color.Red, 7); //Se deseneaza linia g.DrawLine(p, 1, 1, 100, 100);

Cercul de programare .NET ADF

Exemplu:
Graphics g = this.CreateGraphics(); Pen p = new Pen(Color.MediumPurple, 2); // Creeam un array de puncte Point[] points = new Point[] { new Point(10, 10), new Point(10, 100), new Point(50, 65), new Point(100, 100), new Point(85, 40)}; //Deseneaza o figura specificata de array-ul definit g.DrawPolygon(p, points);
Cercul de programare .NET ADF

Customizarea obiectelor Pen


Pe langa controlul dimensiunii si culorii unei linii, se poate controla modelul liniei si capetele liniei. Tipul liniei se poate modifica prin setarea proprietatii DashStyle al unui obiect de tip Pen, cu una din valorile: DashStyle.Dash, DashStyle.DashDot, DashStyle.DashDotDot, DashStyle.Dot, or DashStyle.Solid. Exemplu: Graphics g = this.CreateGraphics(); Pen p = new Pen(Color.Red, 7); p.DashStyle = DashStyle.Dot; g.DrawLine(p, 50, 25, 400, 25);

Cercul de programare .NET ADF

Customizarea obiectelor Pen


Pentru a da selecta diferite forme pentru capetele liniei se modifica proprietatea Pen.StartCap si Pen.EndCap folosind enumerarea LineCap. Graphics g = this.CreateGraphics(); Pen p = new Pen(Color.Red, 10); p.StartCap = LineCap.ArrowAnchor; p.EndCap = LineCap.DiamondAnchor; g.DrawLine(p, 50, 25, 400, 25);

Cercul de programare .NET ADF

Umplerea formelor
Clasa Graphics inglobeaza si metode de umplere a unor forme desenate. Aceste metode functioneaza in acelasi fel ca si metodele de desenare cu deosebirea ca acum nu vom instantia un obiect de tip Pen ci vom instantia unul de tip Brush. Clasa Brush fiind o clasa abstracta, va fi necesar sa se instantieze una din clasele derivate: System.Drawing.Drawing2D.HatchBrush System.Drawing.Drawing2D.LinearGradientBrush System.Drawing.Drawing2D.PathGradientBrush System.Drawing.SolidBrush System.Drawing.TextureBrush

Cercul de programare .NET ADF

Exemplu:
Graphics g = this.CreateGraphics(); Pen p = new Pen(Color.Maroon, 2); Brush b = new LinearGradientBrush(new Point(1,1), new Point(100,100), Color.White, Color.Red); Point[] points = new Point[] { new Point(10, 10), new Point(10, 100), new Point(50, 65), new Point(100, 100), new Point(85, 40)}; g.FillPolygon(b, points); g.DrawPolygon(p, points); Cercul de programare .NET ADF