HyperLink


Bejelentkezés
E-mail: 
Jelszó: 






Skip Navigation Links
 

Tetszőleges ecset használata körvonal (Pen) rajzolásakor


Példaprogram letöltése

6977 bájt

Az ecsetet általában arra szokás használni, hogy valamilyen grafikai objektum hátterének kitöltését meghatározzuk. Az ecset lehet sokféle: egyszínű, színátmenetes, bitmap-et tartalmazó, stb. A GDI+-ban azonban lehetőségünk van arra is, hogy ecsetet ne csak a háttér kitöltésére használjuk fel, hanem az objektumok körvonalának megadásakor is. Így például könnyen készíthetünk olyan grafikát, melynek körvonala mondjuk színátmenetes vonalból áll.

A megoldás lényege abból áll, hogy a Pen objektumnál, mely a grafika körvonalát határozza meg, adott egy Brush nevű property. E property-hez tetszőleges ecset rendelhető, bármilyen típusú is legyen (SolidBrush, LinearGradientBrush, stb.). Ettől kezdve az így létrehozott ceruza (Pen), már nem a Color property-ben megadott színnel rajzol, hanem a Brush property-ben megadott ecsetet használja a körvonal elkészítésekor.
A mellékelt példában egy olyan feliratot készítünk, melynek körvonala színátmenetes. Ehhez arra lesz szükségünk, hogy megszerezzük a szöveg körvonalának leírását, melyhez egy GraphicsPath nevű osztályt használhatunk.
    Dim g As Graphics = e.Graphics
    Dim gp As New GraphicsPath()
Szükségünk lesz továbbá a kirajzolandó sztring szélességére és magasságára a színátmenethez.
    Dim s As String = "Software Online"
    Dim size As SizeF = g.MeasureString(s, New Font("Times New Roman", 80))
A GrahpicsPath osztály példányához hozzáadjuk a sztringet, mint új grafikát az AddString függvénnyel.
    Dim ff As New FontFamily("Times New Roman")
    gp.AddString(s, ff, 1, 80, New Point(0, 0), StringFormat.GenericDefault)
Most már jöhet a kirajzolás előkészítése: létrehozunk egy LinearGradientBrush osztályt, melyben leírjuk a szükséges színátmenetet. Itt használjuk fel a már lekérdezett sztring szélességét és magasságát. A színátmenet létrehozásához megadható egy szög, mely azt írja le, hogy a két szín közötti átmenet milyen irányban legyen kirajzolva. Ennek mértékét az angle nevű változóból vesszük, melyet egy Timer komponens állandóan növel. Ezzel azt érjük el, hogy a színátmenet folyamatosan „mozog”.
    Dim lgb As New LinearGradientBrush(New Rectangle(0, 0, CInt(size.Width), CInt(size.Height)), Color.Yellow, Color.Red, angle, True)
Most már jöhet a Pen létrehozása, melynek konstruktorában megadjuk a felhasználandó ecsetet és a körvonal vastagságát. Végül pedig kirajzoljuk a sztringet és készen is vagyunk.
    Dim p As New Pen(lgb, 2)
    g.FillPath(New SolidBrush(Color.Gray), gp)
    g.DrawPath(p, gp)

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2010 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |