Sunteți pe pagina 1din 6

Crearea unui unui obiect de tip Grapics Spatiul System.

Drawing con ine tipuri care permit realizarea unor desene 2D i au rol deosebit n proiectarea interfe elor grafice. Clasa Graphics este o clas sigilat reprezentnd o arie rectangular care permite reprezent ri grafice. Crearea unui creion Un obiect de tip Graphics nu are utilizare fara un obiect de tip Pen (stilou) cu care sa efectueze propriu zis desenul. Un obiect de tip Pen poate fi creat destul de usor, dupa cum urmeaza: Pen variable_name = new Pen (culoare, latime); Unde variable_name este numele ce urmeaza a fi atribuit obiectului de tip Pen, culoarea este culoarea pen-ului, latimea este latimea dintre liniei creata de stilou. De exemplu, putem crea un obiect de tip Pen de 5 pixeli, dupa cum urmeaza: private void Form1_Paint(object sender, PaintEventArgs e) { System.Drawing.Graphics graphicsObj; graphicsObj = this.CreateGraphics(); Pen myPen = new Pen(System.Drawing.Color.Red, 5); }

O data ce un obiect de tip Pen a fost creat, alte proprietati ii pot fi modificate, cum ar fi proprietatea DashStyle poate fi modificata pentru ai schimba stilul de linie, de exemplu Dash, DashDot, DashDotDot, Dot, Solid sau Custom. myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot; myPen.Color = System.Drawing.Color.RoyalBlue; myPen.Width = 3;

Desenarea liniilor Liniile sunt desenate in C# folosind metoda DrawLine() a clasei Graphics. Aceasta metoda are un obiect de tip Pen preinstantiat si doua seturi de coordonate x si y (punctele de inceput si de sfarsit de linie) ca argumente. De exemplu putem desena o linie avand coordonatele (20,20) si (200,210): private void Form1_Paint(object sender, PaintEventArgs e) { System.Drawing.Graphics graphicsObj; graphicsObj = this.CreateGraphics(); Pen myPen = new Pen(System.Drawing.Color.Pink, 5); myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot; graphicsObj = this.CreateGraphics(); graphicsObj.DrawLine(myPen, 20, 20, 200, 210);

} Desenarea patratelor si dreptunghiurilor Pentru a desena dreptunghiuri in C# clasa Graphics ne pune la dispozitie metoda DrawRectangle(). Exista doua moduri de a folosi metoda DrawRectangle().Una este s se instantiete un obiect de tip Rectangle si apoi unu de tip Pen i ceal lalta este de a crea o instan a unui obiect de tip Rectangle care sa cuprinda si instantierea unui obiect de tip Pen. Vom ncepe prin a exemplifica desenarea unui dreptunghi, f r un obiect de tip Pen precreat.Sintaxa pentru aceasta este: graphicsobj.DrawRectangle(pen, x, y, width, height); Sintaxa pentru cealalta metoda este: Rectangle rectangleObj = new Rectangle (x, y, width, height); Odat ce un obiect de tip Rectangle a fost instan iat, sintaxa pentru a apela DrawRectangle() este: graphicsobj.DrawRectangle(pen, x, y, rectangleobj); Urm torul exemplu creeaz un dreptunghi, care este apoi utilizat ca argument pentru metoda DrawRectangle (): private void Form1_Paint(object sender, PaintEventArgs e) { System.Drawing.Graphics graphicsObj; graphicsObj = this.CreateGraphics(); Pen myPen = new Pen(System.Drawing.Color.Blue, 10); Rectangle myRectangle = new Rectangle(20, 20, 250, 200); graphicsObj.DrawRectangle(myPen, myRectangle); }

Desenarea eclipselor si cercurilor Eclipsele si cercurile sunt desenate in C# folosind metoda DrawEllipse() din clasa Graphics. Dimensiunea formei care se vrea a fi trasata este definita prin specificarea unui dreptunghi in care forma trebuie sa se potriveasca. Exista doua moduri de a folosi metoda DrawEllipse().Una este s se instantiete un obiect de tip Rectangle si apoi unu de tip Pen i ceal lalta este de a crea o instan a unui obiect de tip Rectangle care sa cuprinda si instantierea unui obiect de tip Pen. Vom ncepe prin a exemplifica desenarea unei elipse, f r un obiect de tip Pen precreat.Sintaxa pentru aceasta este: graphicsobj.DrawEllipse(pen, x, y, width, height); Sintaxa pentru cealalta metoda este: Rectangle rectangleObj = new Rectangle (x, y, width, height); Odat ce un obiect dreptunghi a fost instan iat, sintaxa pentru a apela metoda DrawRectangle() este, dup cum urmeaz : graphicsobj.DrawEllipse(pen, x, y, rectangleobj); Urm torul exemplu creeaz un dreptunghi, care este apoi utilizat ca argument pentru metoda DrawEllipse (): private void Form1_Paint(object sender, PaintEventArgs e) { System.Drawing.Graphics graphicsObj; graphicsObj = this.CreateGraphics(); Pen myPen = new Pen(System.Drawing.Color.Chartreuse, 5); Rectangle myRectangle = new Rectangle(20, 20, 250, 200); graphicsObj.DrawEllipse(myPen, myRectangle); }

Redactarea unui text Testul este desenat folosind metoda DrawText din clasa Graphics. Sintaxa pentru aceasta metoda este: graphicsobj.DrawString(string, font, brush, x, y); Argumentul string specifica textul care urmeaza a fi redactat; font defineste fontul pentru a fi utilizat in afisarea textului si necesita crearea unui obiect de tip Font. Obiectul de tip Brush este similar cu obiectul de tip Pen folosit pentru a desena forme cu exceptia faptului ca se specifica un model de umplere, iar valorile lui x si y specifica coltul din stanga sus a textului. Codul de mai jos, va afi a urm torul text pe formular:

private void Form1_Paint(object sender, PaintEventArgs e) { System.Drawing.Graphics graphicsObj; graphicsObj = this.CreateGraphics(); Font myFont = new System.Drawing.Font("Helvetica", 35, FontStyle.Italic); Brush myBrush = new SolidBrush(System.Drawing.Color.BurlyWood); graphicsObj.DrawString("Master SIA Rules!!:)", myFont, myBrush, 20, 25); }

Aceasta metoda va crea un obiect de tip Graphics atribuit imaginii pe care o incarc. Codul pentru un exemplu ar fi: System.Drawing.Image exampleimage = Image.FromFile("C:\\MyImage.bmp"); System.Drawing.Graphics GraphicsObject = Graphics.FromImage(exampleimage);

Aceasta secventa de cod va crea un baza pe imaginea fictiva C: \ MyImage.bmp.

obiect grafic

care se

va

Putem sa punem in aplicare aceste elemente, folosind de exemplu aceasta secventa de cod: System.Drawing.Image exampleimage = Image.FromFile("C:\\MyImage.bmp"); System.Drawing.Graphics GraphicsObject = Graphics.FromImage(exampleimage); GraphicsObject.FillEllipse(Brushes.Red, new Rectangle(0, 0, 100, 100)); exampleimage.Save("C:\\MyImage2.bmp", System.Drawing.Imaging.ImageFormat.Bmp); exampleimage.Dispose(); GraphicsObject.Dispose();

Acest cod va crea un obiect de grafic de la imaginea pe care tocmai a i f cut. Se vacrea apoi o nou imagine numit C: \ MyImage2.bmp. Daca deschideti imaginea, veti observa un cerc rosu in coltul din stanga sus a paginii, avand formatul 100px X 100px.

Graphics.FromHwnd(IntPtr) Aceasta va crea un obiect grafic pentru a picta pe o fereastra. Fereastra este doar un alt nume pentru un control. Un control poate fi orice, de la formular la un buton sau o caset de text.
System.Drawing.Graphics GraphicsObject = Graphics.FromHwnd(Button1.Handle);