HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Kép beágyazása az alkalmazásba erőforrásként


Példaprogram letöltése

7743 bájt

Visual Studio.NET-es alkalmazások készítésekor lehetőségünk van különféle erőforrások tárolására a készítendő alkalmazásba. Így többek között megoldható az is, hogy tetszőleges méretű és tartalmú képet fordítsunk be az EXE-be, DLL-be, majd a program futása során ezeket felhasználjuk.

Új bitmap létrehozásához válasszuk a Solution Explorer-ben az aktuális projektet, majd jobb gomb után az Add - Add new item menüpontot. A megjelenő ablakban keressük elő a Bitmap File elemet. Ezzel egy új Bitmap-et tudunk létrehozni az adott projekthez. Ha már meglévő BMP állományt szeretnénk hozzáadni, akkor egyszerűen a Windows Intézőből drag and drop-al fogjuk meg és húzzuk át a Bitmap-et a Solution Explorer-be.
Ettől viszont még nem kerül be erőforrásként a Bitmap a készítendő alkalmazásba. Ha ezt így szeretnénk, akkor szükséges a következő beállítás: miután a Solution Explorer-ben az adott Bitmap a kijelölt, akkor a Properties ablakban a Build Action tulajdonságát állítsuk át Embedded Resource értékre.
Ha most lefordítjuk, futtatjuk az alkalmazást, akkor már a Bitmap is belekerül.
Nézzük most, miként tudjuk a programban tárolt képet elővarázsolni futás közben.
    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
Első lépésként azt az assembly-t kell elérnünk, mely alkalmazásunk adott Form-ja lesz.
      Assembly a = Assembly.GetAssembly(Type.GetType("EmbedBitmap.Form1"));
Következő lépésként máris létrehozhatunk egy új Bitmap osztályt, melynek konstruktorában egy stream-et adunk meg, amit a létrehozott Assembly GetManifestResourceStream függvénye szolgáltat.
      Bitmap bmp = new Bitmap(a.GetManifestResourceStream("EmbedBitmap.Bitmap1.bmp"));
A kapott képet ezek után szabadon felhasználhatjuk.
      e.Graphics.DrawImage(bmp, 10, 10);
    }
A helyes működés érdekében, mind az assembly osztály létrehozásánál, mind a GetManifestResourceStream függvényben a megfelelő nevet kell használnunk, hogy a kép elérhető legyen. Az assembly létrehozásánál a típus meghatározásakor a névtér.ablak elnevezést kell használnunk. Mivel az alkalmazásunk az EmbedBitmap nevet kapta és a Form1-en dolgozunk, így itt az EmbedBitmap.Form1 név lesz a megadandó.
A GetManifestResourceStream függvény esetén a névtér.erőforrás név formátumot kell követnünk. Mivel a létrehozott kép Bitmap1.bmp nevet kapta, így itt az EmbedBitmap.Bitmap1.bmp névvel hivatkozhatunk az elérni kívánt erőforrásra.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 335. 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 |