HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Kép elhelyezése a vágólapra


Példaprogram letöltése

6932 bájt

Vágólapon tetszőleges objektumokat helyezhetünk el és vihetünk át alkalmazások között, így akár saját alkalmazásunkba is, ha azt felkészítjük erre. Ehhez azonban nem árt ismernünk annak módját, hogy meghatározzuk milyen típusú adat van a vágólapon. A példában most kép elhelyezését és kiolvasását valósítjuk meg.

A szükséges műveletek elvégzésében az IDataObject interfész lesz segítségünkre. Egy ilyen objektumot ad vissza például a Clipboard osztály GetDataObject statikus függvénye.
     private void button1_Click(object sender, System.EventArgs e)
    {
      IDataObject ido = Clipboard.GetDataObject();
Ha adott az IDataObject objektuma, akkor már viszonylag egyszerűen meghatározhatjuk, hogy milyen típusú adat helyezkedik el aktuálisan a vágólapon.
Ehhez a GetFormats függvényt használhatjuk. Itt egy sztringeket tartalmazó tömböt kapunk visszatérési értékként. A tömb minden egyes eleme egy-egy meghatározása az adott formátumnak. Például, ha egy bitmap-et helyezünk vágólapra, akkor a következő sztringeket kapjuk: Bitmap, DeviceIndependentBitmap, Format17.
Ha a GetFormats logikai paraméterének igaz értéket adunk, akkor ezzel azt érjük el, hogy fenti lista kiegészül még azokkal az elemekkel is, melyre a vágólapon lévő objektum automatikusan konvertálható a programunkon belül. A bitmap-nél maradva, ekkor a tömbbe még a System.Drawing.Bitmap elem is megjelenik.
      listBox1.Items.Clear();
      listBox1.Items.AddRange(ido.GetFormats(checkBox1.Checked));
    }
Nézzük most azt, hogy miként tudjuk felhasználni programunkban egy a vágólapon elhelyezkedő képet.
Első lépésként ismét csak a Clipboard GetDataObject függvényével kérünk egy IDataObject interfészt.
    private void button2_Click(object sender, System.EventArgs e)
    {
      IDataObject ido = Clipboard.GetDataObject();
Ellenőriznünk kell, hogy tényleg kép van-e aktuálisan a vágólapon, különben hiba lenne programunk futása során.
      if (ido.GetDataPresent(DataFormats.Bitmap))
      {
Ha kép van, akkor azt egyszerűen megjeleníthetjük egy PictureBox kontrollon. Ehhez csak a GetData függvényt kell felhasználni, ahol paraméterként megadhatjuk, hogy milyen formátumban szeretnénk viszontlátni az adatot. A visszatérési érték object típusú lesz.
        pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
        pictureBox1.Image = (Image)ido.GetData(DataFormats.Bitmap);           
      }       
    }
Ha már adott egy kép a PictureBox-ban, akkor tegyük meg azt, hogy tükrözzük, és az új képet visszahelyezzük a vágólapra.
    private void button3_Click(object sender, System.EventArgs e)
    {
      pictureBox1.Image.RotateFlip(RotateFlipType.Rotate180FlipX);
Ehhez a Clipboard SetDataObject függvényét használhatjuk, melynek paraméterként a vágólapon elhelyezendő képet kell megadnunk.
      Clipboard.SetDataObject(pictureBox1.Image);
    }

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