Bagikan melalui


Salin dan tempel

Artikel ini menjelaskan cara mendukung penyalinan dan tempel di aplikasi Platform Windows Universal (UWP) menggunakan clipboard. Salin dan tempel adalah cara klasik untuk bertukar data baik antara aplikasi, atau dalam aplikasi, dan hampir setiap aplikasi dapat mendukung operasi clipboard hingga tingkat tertentu. Untuk contoh kode lengkap yang menunjukkan beberapa skenario salin dan tempel yang berbeda, lihat sampel clipboard.

Periksa dukungan clipboard bawaan

Dalam banyak kasus, Anda tidak perlu menulis kode untuk mendukung operasi clipboard. Banyak kontrol XAML default yang dapat Anda gunakan untuk membuat aplikasi yang sudah mendukung operasi clipboard.

Mari kita siapkan

Pertama, sertakan namespace Layanan Windows.ApplicationModel.DataTransfer di aplikasi Anda. Kemudian, tambahkan instans objek DataPackage . Objek ini berisi data yang ingin disalin pengguna dan properti apa pun (seperti deskripsi) yang ingin Anda sertakan.

DataPackage dataPackage = new DataPackage();

Salin dan potong

Salin dan potong (juga disebut sebagai pemindahan) bekerja hampir persis sama. Pilih operasi mana yang Anda inginkan dengan menggunakan properti RequestedOperation .

// copy 
dataPackage.RequestedOperation = DataPackageOperation.Copy;
// or cut
dataPackage.RequestedOperation = DataPackageOperation.Move;

Mengatur konten yang disalin

Selanjutnya, Anda dapat menambahkan data yang telah dipilih pengguna ke objek DataPackage . Jika data ini didukung oleh kelas DataPackage , Anda dapat menggunakan salah satu metode yang sesuai dari objek DataPackage . Berikut cara menambahkan teks dengan menggunakan metode SetText :

dataPackage.SetText("Hello World!");

Langkah terakhir adalah menambahkan DataPackage ke clipboard dengan memanggil metode SetContent statis.

Clipboard.SetContent(dataPackage);

Tempel

Untuk mendapatkan konten clipboard, panggil metode GetContent statis. Metode ini mengembalikan DataPackageView yang berisi konten. Objek ini hampir identik dengan objek DataPackage , kecuali bahwa kontennya bersifat baca-saja. Dengan objek tersebut, Anda dapat menggunakan AvailableFormats atau metode Contains untuk mengidentifikasi format apa yang tersedia. Kemudian, Anda dapat memanggil metode DataPackageView yang sesuai untuk mendapatkan data.

async void OutputClipboardText()
{
    DataPackageView dataPackageView = Clipboard.GetContent();
    if (dataPackageView.Contains(StandardDataFormats.Text))
    {
        string text = await dataPackageView.GetTextAsync();
        // To output the text from this example, you need a TextBlock control
        TextOutput.Text = "Clipboard now contains: " + text;
    }
}

Lacak perubahan ke clipboard

Selain perintah salin dan tempel, Anda mungkin juga ingin melacak perubahan clipboard. Lakukan ini dengan menangani peristiwa ContentChanged clipboard.

Clipboard.ContentChanged += async (s, e) => 
{
    DataPackageView dataPackageView = Clipboard.GetContent();
    if (dataPackageView.Contains(StandardDataFormats.Text))
    {
        string text = await dataPackageView.GetTextAsync();
        // To output the text from this example, you need a TextBlock control
        TextOutput.Text = "Clipboard now contains: " + text;
    }
}

Lihat juga