Av Sharlene Von Drehnen
DelekvitringDeleE-post

Se hvordan du kan tegne former, bruke farger og gjengi bilder i en WinForms-app.

Windows Forms er et rammeverk som lar deg bygge skrivebordsapplikasjoner. Du kan klikke og dra komponenter som knapper til et visuelt brukergrensesnitt. Det hjelper deg også manuelt å lage ulike former i koden din.

Denne artikkelen viser deg hvordan du legger til linjer, former og bilder i applikasjonen din. Denne opplæringen bruker Visual Studio 2019 Community Edition for å vise eksempler.

Hva er de innebygde klassene som brukes til å tegne grafikk?

Windows Forms bruker C# programmeringsspråk. Dens innebygde klasser og metoder lar deg tegne forskjellige former på et Windows Form-lerret. Disse inkluderer grafikk-, penn-, farge- og penselklassene.

instagram viewer
Klasse Beskrivelse
Grafikk Grafikkklassen lar deg tegne former og linjer på lerretet. Det inkluderer metoder som:
  • DrawLine (Penn, Point1, Point2)
  • DrawRektangel (x, y, bredde, høyde)
  • DrawPolygon (Penn, PointF[])
Penn Penn-klassen lar deg spesifisere egenskapene til en "penn"-spiss som du kan bruke til å tegne figurene dine. Du kan spesifisere egenskaper som farge, tykkelse eller strekstil. Metoder inkluderer:
  • SetLineCap (LineCap, LineCap, DashCap)
Farge Et fargeobjekt som består av R (rød), G (grønn) og B (blå) verdier. Du trenger et fargeobjekt for mange av de innebygde metodene som skaper former.
SolidBrush, HatchBrush, TextureBrush Disse børsteklassene stammer fra "Brush"-grensesnittet. Disse klassene lar deg fargelegge tomme områder på lerretet. Du kan også velge å fylle mellomrommene med forskjellige mønstre eller teksturer. Du kan spesifisere egenskaper som fargen.
Rektangel, linje, polygon, ellipse Du kan lage objekter basert på disse formene, og bruke dem når du kaller metoder som DrawRectangle(). I stedet for å sende x, y, bredde og høyde som argumenter, kan du velge å sende et eksisterende rektangelobjekt i stedet.

For å se kildekoden for et løpende eksempel på opplæringen ovenfor, besøk GitHub-depot. Du kan prøve følgende eksempler når du har gjort det opprettet en Winforms-applikasjon.

Hvordan legge til en maling på skjemalasthendelseshåndterer

Først legger du til en hendelsesbehandler for å tegne former når lerretet lastes.

  1. Legg til en Paint-funksjon for skjemaet.
    privat void Form1_Paint (objektavsender, PaintEventArgs e)
    {
    // Koden går her
    }
  2. Gå inn i Design View-fanen.
  3. I Egenskaper-vinduet velger du lynikonet for å åpne fanen "Hendelser".
  4. I "Paint", under "Appearance", velg Form1_Paint-funksjonen. Dette vil utføre funksjonen når du kjører applikasjonen.

Hvordan tegne linjer på et Windows-skjemalerret

Du kan bruke en Color, Pen og DrawLine()-metoden for å tegne linjer på et lerret.

  1. Inne i Form1_Paint()-funksjonen lager du et Color-objekt med fargen du vil at linjen skal være. Deretter lager du et pennobjekt for å tegne linjen med.
    Farge svart = Farge. FromArgb (255, 0, 0, 0);
    Penn svartPenn = ny Penn (svart);
  2. DrawLine()-metoden fra Graphics-klassen vil tegne en linje ved hjelp av pennen. Dette vil begynne å tegne en linje fra en x, y-posisjon til en annen x, y-posisjon.
    e. Grafikk. DrawLine (svart penn, 300, 200, 800, 200);
  3. Du kan endre egenskapene for pennobjektet for å endre bredden, strekstilen og start- eller sluttstykket.
    svartPenn. Bredde = 20;
    svartPenn. DashStyle = System. Tegning. Drawing2D.DashStyle. Bindestrek;
    svartPenn. StartCap = System. Tegning. Drawing2D.LineCap. ArrowAnchor;
    e. Grafikk. DrawLine (svart penn, 300, 200, 800, 200);
  4. Trykk på den grønne avspillingsknappen øverst i Visual Studio for å se endringene.

Hvordan tegne former som rektangler og sirkler

Du kan bruke formklassene for forskjellige former, eller tegne figurer manuelt på lerretet.

  1. Lag et farge- og pennobjekt som vist i de foregående trinnene. Deretter bruker du DrawRectangle()-metoden for å lage rektangelet. Argumentene er x- og y-koordinatene øverst til venstre i rektangelet, sammen med dets bredde og høyde.
    Farge rød = Farge. FromArgb (255, 255, 0, 0);
    Penn rødPenn = ny Penn (rød);
    rødPenn. Bredde = 5;
    e. Grafikk. DrawRektangel (rødpenn, 100, 100, 500, 200);
  2. Du kan også lage et rektangel ved å bruke rektangelklassen. Først lager du et rektangelobjekt. Argumentene er også x- og y-koordinatene for øverste venstre hjørne, bredde og høyde.
    Rektangel rektangel = nytt rektangel (100, 350, 500, 200);
  3. Bruk funksjonen DrawRectangle() for å tegne rektangelet. I stedet for å overføre x, y, bredde og høyde som før, kan du bruke Rectangle-objektet i stedet.
    e. Grafikk. DrawRectangle (rødPenn, rektangel);
  4. Trykk på den grønne avspillingsknappen øverst i Visual Studio for å se endringene.
  5. Gå tilbake til koden for å tegne andre former. Bruk DrawEllipse()-funksjonen til å tegne en sirkel.
    Farge grønn = Farge. FromArgb (255, 0, 255, 0);
    Penn grønnPenn = ny Penn (grønn);
    grønnPenn. Bredde = 5;
    e. Grafikk. DrawEllipse (grønnPenn, 400, 150, 400, 400);
    Når du tegner en sirkel, refererer x- og y-koordinatene (x=400, y=150) til det øverste venstre hjørnet av sirkelen, ikke til midten av sirkelen.
  6. For å tegne andre former som trekanter eller sekskanter, bruk DrawPolygon()-metoden. Her kan du angi en liste over koordinater for å representere punktene i formen.
    Farge blå = Farge. FromArgb (255, 0, 0, 255);
    Penn blåPenn = ny penn (blå);
    blåpenn. Bredde = 5;
    PointF[]-koordinaterForTriangle = new PointF[] {
    new PointF(400; 150),
    new PointF(300; 300),
    new PointF(500; 300)
    };
    e. Grafikk. DrawPolygon (blåPenn, koordinaterForTriangle);
    DrawPolygon()-metoden vil tegne linjer mellom punktene som er spesifisert. ​​​​​​

Hvordan bruke børsteklassen til å fylle ut former med farge

Du kan bruke metodene FillRectangle(), FillEllipses() eller FillTriangle() for å lage former med en solid farge.

  1. Først lager du et børsteobjekt.
    Farge lilla = Farge. FromArgb (255, 128, 0, 0);
    SolidBrush solidBrush = ny SolidBrush (lilla);
  2. Bruk metodene FillRectangle(), FillEllipses() eller FillTriangle(). De fungerer på samme måte som tegnefunksjonene ovenfor, bortsett fra i stedet for en penn, bruker de et penselobjekt.
    e. Grafikk. FyllRektangel (solidBrush, 50, 50, 200, 250);
    e. Grafikk. FillEllipse (solidBrush, 300, 50, 200, 200);
    e. Grafikk. FillPolygon (solidBrush, new PointF[] { new PointF(700, 150), new PointF(600, 300), new PointF(800, 300) });
  3. Du kan også legge inn et formobjekt direkte i stedet for å oppgi koordinater.
    Rektangel rektangel = nytt rektangel (100, 350, 500, 200);
    e. Grafikk. FyllRektangel (solidBrush, rektangel);
  4. Bruk HatchBrush til å fylle formen med en annen fyllstil, for eksempel et horisontalt eller vertikalt mønster.
    Farge blå = Farge. FromArgb (255, 0, 0, 255);
    Farge grønn = Farge. FromArgb (255, 0, 255, 0);
    HatchBrush hatchBrush = ny HatchBrush (HatchStyle. Horisontal, grønn, blå);
    e. Grafikk. FyllRektangel (hatchBrush, 50, 50, 200, 250);
  5. Du kan bruke TextureBrush til å fylle en form ved hjelp av et bilde. Lag her en punktgrafikk ved å peke på en bildefil. I stedet for å lage en pensel med en farge, lag den ved å bruke bildet.
    Bitmap-bilde = (Bitmap) Bilde. FromFile(@"C:\Users\Sharl\Desktop\flag.bmp", true);
    TextureBrush textureBrush = ny TextureBrush (bilde);
    e. Grafikk. FyllRektangel (teksturbørste, 100, 100, 500, 400);

Hvordan gjengi bilder på skjemaet

For å gjengi et bilde, lag et PictureBox-kontrollobjekt og legg det til i skjemaet.

  1. Lag et PictureBox-kontrollobjekt ved hjelp av en bildefil.
    PictureBox-bilde = ny PictureBox();
    bilde. ImageLocation = @"C:\Users\Sharl\Desktop\flagLarge.bmp";
  2. Angi størrelsen på bildet og legg det til i skjemaet slik at det gjengis.
    bilde. SizeMode = PictureBoxSizeMode. Auto størrelse;
    dette. Kontroller. Legg til (bilde);
  3. Trykk på den grønne startknappen øverst for å se bildet.

Legge til flere former i Windows-skjemaet

Du bør nå forstå hvordan du legger til linjer, former og bilder i Windows-skjemaet. Du kan kombinere former for å lage nye former. Du kan også leke med de innebygde funksjonene for å lage mer komplekse former.

Er ASP.NET verdt å lære i 2021?

Les Neste

DelekvitringDeleE-post

Relaterte temaer

  • Programmering
  • Programmering

Om forfatteren

Sharlene Von Drehnen (7 artikler publisert)

Sharlene er teknisk skribent ved MUO og jobber også fulltid innen programvareutvikling. Hun har en bachelor i IT og har tidligere erfaring innen kvalitetssikring og universitetsveiledning. Sharlene elsker å spille og spille piano.

Mer fra Sharlene Von Drehnen

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Klikk her for å abonnere