Kezdőlap > Windows 8 > Vágólap – Clipboard

Vágólap – Clipboard

2012. december 19. szerda Hozzászólás Go to comments

Gyakori eset, hogy az alkalmazásunkból valamilyen adatot a vágólapra szeretnénk helyezni, vagy épp onnan betölteni. Természetesen ehhez is megvannak a megfelelő API-jaink, amivel ez egyszerűen lehetséges. Azt viszont fontos szem előtt tartanunk mindig, hogy milyen adatot is szeretnénk mi a vágólapra helyezni vagy épp onnan betölteni. Ugyanis nem mindegy, hogy egyszerű szöveget, HTML dokumentumot vagy épp egy képet szeretnénk a vágólapra helyezni / betölteni. A vágólap használatához a Windows.ApplicationModel.DataTransfer névtérre lesz szükségünk.

using Windows.ApplicationModel.DataTransfer;

A legegyszerűbb az egyszerű szöveg elhelyezése és betöltése a vágólapról. Az alábbi példában egy DataPackage osztályt példányosítunk, amelynek meghívjuk a SetText metódusát. Ennek paraméteréül egy szting szöveget kell adnunk. (Ebben az esetben egy txtMsg textbox Text tulajdonságát adjuk meg számára. Ezt követően a Cliboard SetContent metódusának a korábban létrehozott DataPackage példányt adjuk át.

DataPackage dt = new DataPackage();          
dt.SetText(txtMsg.Text);
Clipboard.SetContent(dt);

A beillesztés legalább ilyen egyszerű. Ehhez a Clipboard GetContent metódusát kell meghívnunk, melynek a visszatérési értéke egy DataPackageView példány. De mielőtt még az adatot beillesztenénk célszerű, megvizsgálni, hogy egyáltalán van-e megfelelő “formátumú” adat a vágólapon. Ha van, akkor a DataPackageView példány (clipboardData) GetTextAsync metódusát kell meghívnunk. Ennek a visszatérési értéke egy sztring. (Ebben a példában egy tbRes nevű TextBlock vezérlőbe íratunk ki.)

DataPackageView clipboardData = Clipboard.GetContent();
if (clipboardData.Contains(StandardDataFormats.Text))
{
    tbRes.Text = await clipboardData.GetTextAsync();
}

Html tartalom elhelyezése és beillesztése ugyanilyen egyszerű. Csak ebben az esetben nem a SetText, hanem a SetHtmlFormat metódust kell meghívnunk, majd a DataPackage-t ugyanúgy, mint korábban, át kell adnunk a Clipboard SetContent metódusának.

DataPackage dt = new DataPackage();          

string htmldoc = @"<!DOCTYPE html>
<html>
<body>
<h1>This is heading 1</h1>
<h2>This is heading 2</h2>
<h3>This is heading 3</h3>
</body>
</html>";

dt.SetHtmlFormat(htmldoc);
Clipboard.SetContent(dt);

A beillesztés hasonló analógiával történik. Ugyanúgy meg kell hívni a Clipboard GetContent metódusát, csak itt az ellenőrzésnél a StandardDataFormats osztály Html tulajdonságát kell átadnunk a Contains metódusnak, hogy ellenőrizzük, hogy tényleg van HTML tartalom a vágólapon. A beillesztés itt természetesen a GetHtmlFormatAsync aszinkron metódussal történik! (Ebben az esetben egy webViewControl nevű WebView vezérlőnek adjuk át a beillesztett HTML tartalmat)

DataPackageView clipboardData = Clipboard.GetContent();
if (clipboardData.Contains(StandardDataFormats.Html))
{

    webViewControl.NavigateToString(await clipboardData.GetHtmlFormatAsync());
}

Természetesen akár képet vagy más összetett objektumokat is elhelyezhetünk a vágólapra. Ezekhez külön speciális metódusok társulnak.

Egy DataPackage-ben akár több adatot is elhelyezhetünk a vágólapra! Például: egyszerre elhelyezhetünk egyszerű szöveget és képet is a váglólapra. A beillesztésnél mondjuk meg, hogy mit szeretnénk beilleszteni: szöveget vagy képet, esetleg rtf dokumentumot stb.

  1. Még nincs hozzászólás.
  1. No trackbacks yet.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: