GDI + ir veids, kā zīmēt formas, fontus, attēlus vai vispār kaut ko grafisku Visual Basic .TĪKLS.
Šis raksts ir pirmā daļa no pilnīga ievada par GDI + izmantošanu Visual Basic .NET.
GDI + ir neparasta .NET daļa. Tas bija šeit pirms .NET (GDI + tika izlaists ar Windows XP), un tam nav tādu pašu atjaunināšanas ciklu kā .NET Framework. Microsoft dokumentācijā parasti teikts, ka Microsoft Windows GDI + ir API domēns C / C ++ programmētāji Windows operētājsistēmā. Bet GDI + arī ietver nosaukumvietas, kas tiek izmantotas VB.NET programmatūras bāzes grafikas programmēšanai.
WPF
Bet tas nav tas tikai grafikas programmatūra, ko nodrošina Microsoft, jo īpaši kopš Framework 3.0. Kad tika ieviesta Vista un 3.0, ar to tika ieviests pilnīgi jauns WPF. WPF ir augsta līmeņa, aparatūras paātrināta pieeja grafikai. Kā izteicies Tims Kahils, Microsoft WPF programmatūras komandas loceklis, ar WPF "jūs aprakstāt savu ainu, izmantojot augsta līmeņa konstrukcijas, un mēs uztrauksimies par atpūsties. "Un tas, ka tā ir paātrināta ar aparatūru, nozīmē, ka jums nav jāvelk sava datora procesora darbība, zīmējot figūras uz ekrāns. Lielu daļu reālā darba veic jūsu grafiskā karte.
Tomēr mēs šeit esam bijuši jau iepriekš. Katru "lielo lēcienu uz priekšu" parasti pavada daži paklupieni, un turklāt paies gadi, līdz WPF darbosies pa ZDI + koda ziljoniem baitu. Tas ir īpaši patiesi tāpēc, ka WPF tikai pieņem, ka strādājat ar jaudīgu sistēmu ar lielu atmiņu un karstu grafisko karti. Tāpēc daudzi personālie datori nevarēja palaist Vista (vai vismaz izmantot Vista "Aero" grafiku), kad tā pirmo reizi tika ieviesta. Tātad šī sērija vietnē joprojām ir pieejama visiem un visiem, kam tas joprojām ir jālieto.
Labais Ol kods
GDI + nav kaut kas tāds, ko var vilkt tādā formā kā citi komponenti VB.NET. Tā vietā GDI + objekti parasti ir jāpievieno vecajā veidā - kodējot tos no jauna! (Lai gan VB .NET iekļauj vairākus ļoti noderīgus koda fragmentus, kas jums patiešām var palīdzēt.)
Lai kodētu GDI +, jūs izmantojat objektus un to dalībniekus no vairākām .NET vārdu vietām. (Pašlaik tas faktiski ir tikai Windows OS objektu iesaiņojuma kods, kas faktiski veic darbu.)
Vārdu telpas
GDI + nosaukumvietas ir:
Sistēma. Zīmējums
Tas ir galvenā GDI + nosaukumvieta. Tas definē objektus pamata renderēšanai (fontus, pildspalvas, pamata sukas utt.) un vissvarīgākais objekts: grafika. Vairāk par to mēs redzēsim tikai dažās rindkopās.
Sistēma. Zīmējums. Zīmējums2D
Tas dod jums objektus modernākai divdimensiju vektorgrafikai. Daži no tiem ir gradienta sukas, pildspalvu vāciņi un ģeometriskās transformācijas.
Sistēma. Zīmējums. Attēlveidošana
Ja vēlaties mainīt grafiskos attēlus - tas ir, mainīt paleti, izvilkt attēla metadatus, manipulēt ar metafailiem un tā tālāk - tas ir tas, kas jums nepieciešams.
Sistēma. Zīmējums. Drukāšana
Lai padarītu attēlus drukātajā lapā, mijiedarbotos ar pašu printeri un formatētu drukas darba kopējo izskatu, izmantojiet šeit esošos objektus.
Sistēma. Zīmējums. Teksts
Ar šo nosaukumvietu var izmantot fontu kolekcijas.
Grafikas objekts
Vieta, kur sākt ar GDI +, ir Grafika objekts. Lai gan jūsu zīmētās lietas tiek parādītas monitorā vai printerī, grafikas objekts ir "audekls", uz kura jūs zīmējat.
Bet grafikas objekts ir arī viens no pirmajiem neskaidrību avotiem, lietojot GDI +. Objekts Grafika vienmēr ir saistīts ar noteiktu ierīces konteksts. Tātad pirmā problēma, ar kuru saskaras praktiski katrs jauns GDI + students, ir: "Kā iegūt grafikas objektu?"
Pamatā ir divi veidi:
- Jūs varat izmantot e notikuma parametrs, kas tiek nodots OnPaint pasākums ar PaintEventArgs objekts. Vairāki notikumi iet garām PaintEventArgs un jūs varat izmantot, lai atsauktos uz objektu Grafika, ko ierīces kontekstā jau izmanto.
- Jūs varat izmantot Izveidot grafiku metode ierīces kontekstam, lai izveidotu grafikas objektu.
Šeit ir pirmās metodes piemērs:
Aizsargāts ignorē sub OnPaint (_. ByVal e As System. Windows. Veidlapas. PaintEventArgs) Dim g as Graphics = e. Grafika. g. DrawString ("Par Visual Basic" & vbCrLf _. & "un GDI +" & vbCrLf & "Lieliska komanda", _. Jauns fonts ("Times New Roman", 20), _. Sukas. Firebrick, 0, 0) MyBase. OnPaint (e) Beigas apakš
Noklikšķiniet šeit, lai parādītu ilustrāciju
Pievienojiet to standarta Windows lietojumprogrammas Form1 klasē, lai pats to kodētu.
Šajā piemērā grafikai ir jau izveidots objekts 1. veidlapa. Viss, kas jums jādara, ir izveidot šī objekta vietējo instanci un izmantot to, lai rasētu to pašu formu. Ievērojiet, ka jūsu kods Pārrakstīšana OnPaint metode. Tāpēc MyBase. OnPaint (e) tiek izpildīts beigās. Jums jāpārliecinās, ka, ja bāzes objekts (tas, kuru jūs pārspiežat) dara kaut ko citu, tas iegūst iespēju to izdarīt. Bieži vien jūsu kods darbojas bez šī, taču tā ir laba ideja.
PaintEventArgs
Jūs varat arī iegūt grafikas objektu, izmantojot PaintEventArgs objekts nodots jūsu kodu OnPaint un OnPaintBackground metodes no formas. PrintPageEventArgs nodots a PrintPage pasākumā būs grafikas objekts drukāšanai. Dažiem attēliem pat ir iespējams iegūt grafikas objektu. Tas var ļaut jums gleznot tieši uz attēla tāpat, kā jūs krāsotu uz veidlapas vai detaļas.
Pasākumu apstrādātājs
Vēl viena pirmās metodes variācija ir notikumu apstrādātāja pievienošana Krāsas pasākums formai. Šis kods izskatās šādi:
Privātā apakšveidlapa1_Paint (_. ByVal sūtītājs kā objekts, _. ByVal e As System. Windows. Veidlapas. PaintEventArgs) _. Apsaimnieko mani. Krāsas. Dim g as Graphics = e. Grafika. g. DrawString ("Par Visual Basic" & vbCrLf _. & "un GDI +" & vbCrLf & "Lieliska komanda", _. Jauns fonts ("Times New Roman", 20), _. Sukas. Firebrick, 0, 0) Beigas apakš
Izveidot grafiku
Otra metode, kā iegūt grafikas objektu savam kodam, izmanto a Izveidot grafiku metode, kas ir pieejama ar daudziem komponentiem. Kods izskatās šādi:
Privāta apakšpoga1_klikšķis (_. ByVal sūtītājs kā sistēma. Objekts, _. ByVal e As System. EventArgs) _. Rokturi Button1.Click. Dim g = Me. Izveidot grafiku. g. DrawString ("Par Visual Basic" & vbCrLf _. & "un GDI +" & vbCrLf & "Lieliska komanda", _. Jauns fonts ("Times New Roman", 20), _. Sukas. Firebrick, 0, 0) Beigas apakš
Šeit ir pāris atšķirības. Tas ir Poga1.Noklikšķiniet notikums, jo kad 1. veidlapa pārkrāso sevi Slodze notikums, tiek zaudēta mūsu grafika. Tāpēc mums tie jāpievieno vēlākā pasākumā. Kodējot to, jūs pamanīsit, ka grafika tiek zaudēta 1. veidlapa ir jāpārzīmē. (Atkārtojiet un maksimāli palieliniet, lai to redzētu.) Tā ir liela priekšrocība pirmās metodes izmantošanā.
Lielākā daļa atsauču iesaka izmantot pirmo metodi, jo grafika tiks automātiski pārkrāsota. GDI + var būt sarežģīts!