HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Speciális színátmenet


Példaprogram letöltése

7616 bájt

A GraphicsPath osztály felhasználásával létrehozhatunk egy összetett grafikai objektumot, mely tetszőleges alapvető objektumokból állhat, mint például az ellipszis, a téglalap, szövegek. Az így létrejött összetett objektumot egy speciális színátmenettel ki is festhetjük. Ezt felhasználva igen érdekes és összetett hatást érhetünk el grafikánkban.

E színátmenethez a PathGradientBrush osztályt kell felhasználnunk. A könnyebb megértés kedvéért készítsünk egy egyszerű példát, melyben csupán egy téglalapot festünk ki. A PathGradientBrush használatakor több szint is megadhatunk, melyek között a színátmenet végbemegy. A színek száma attól függ, hogy hány töréspont van a grafikánkban. Egy téglalap esetén ezt még egyszerű meghatározni, így könnyen létrehozhatunk egy tömböt, mely négy színt tárol.
    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
      Color[] c = new Color[]
      {
        Color.Red,
        Color.Violet,
        Color.Lime,
        Color.Blue
      };
Készítsük most el a GraphicsPath segítségével a szükséges grafikai objektumot, mely csupán egyetlen téglalapból áll, melynek mérete egyezik a Form aktuális méretével.
      Graphics g = e.Graphics;
      GraphicsPath gp = new GraphicsPath();
      gp.AddRectangle(this.ClientRectangle);
A PathGradientBrush osztály létrehozásakor annak konstruktorában meg kell adnunk a GraphicsPath osztály imént létrehozott példányát.
      PathGradientBrush pgb = new PathGradientBrush(gp);
A kitöltő minta középpontja egy általunk meghatározott pont lehet, melyet a CenterPoint property-n keresztül tudunk megadni egy Point típusban. Ehhez a középponthoz egy tetszőleges színt is rendelhetünk a CenterColor property-n keresztül.
      pgb.CenterPoint=centerPoint;
      pgb.CenterColor=Color.Yellow;
A téglalap négy sarkához hozzárendelhetjük a fenti tömbben tárolt színeket a SurroundColors property-n keresztül.
      pgb.SurroundColors = c;      
Felhasználva a rajzoláskor az így létrehozott ecsetet, mindig öt szín között jön létre a színátmenet: a négy sarokpont és a középpont színe között arányosan.
      g.FillRectangle(pgb, this.ClientRectangle);
    }

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 195. oldal

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-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |