Aracılığıyla paylaş


Kopyala ve yapıştır

Kopyalama ve yapıştırma, kullanıcıların uygulamalar arasında veya bir uygulama içinde veri alışverişi yapmak için temel bir yoldur. Bu makalede, pano API'lerini kullanarak WinUI ve Evrensel Windows Platformu (UWP) uygulamalarına kopyalama ve yapıştırma uygulama işlemi gösterilmektedir. Verileri kopyalamayı, kesmeyi ve yapıştırmayı, pano değişikliklerini izlemeyi ve farklı veri biçimlerini işlemek için DataPackage sınıfını kullanmayı öğreneceksiniz.

Uyarı

Bu API'leri Windows Çalışma Zamanı (WinRT) API'leri aracılığıyla diğer masaüstü uygulamalarında da kullanabilirsiniz. Daha fazla bilgi için bkz. Masaüstü uygulamalarında Windows Çalışma Zamanı API'lerini çağırma.

Farklı kopyalama ve yapıştırma senaryolarını gösteren eksiksiz kod örnekleri için GitHub'da UWP pano örneğine bakın.

Yerleşik pano desteğini kontrol et

Çoğu durumda, pano işlemlerini desteklemek için kod yazmanız gerekmez. Uygulamalar oluşturmak için kullanabileceğiniz varsayılan XAML denetimlerinin çoğu pano işlemlerini zaten destekler.

Kurulumu gerçekleştir

İlk olarak, uygulamanıza Windows.ApplicationModel.DataTransfer ad alanını ekleyin. Ardından DataPackage nesnesinin bir örneğini ekleyin. Bu nesne hem kullanıcının kopyalamak istediği verileri hem de eklemek istediğiniz özellikleri (açıklama gibi) içerir.

using Windows.ApplicationModel.DataTransfer;
...
var dataPackage = new DataPackage();

Kopyalama ve kesme

Kopyalama ve kesme ( taşıma olarak da adlandırılır) neredeyse aynı şekilde çalışır. RequestedOperation özelliğini kullanarak istediğiniz işlemi seçin.

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

Kopyalanan içeriği ayarlama

Ardından, kullanıcının seçtiği verileri DataPackage nesnesine ekleyebilirsiniz. Bu veriler DataPackage sınıfı tarafından destekleniyorsa, DataPackage nesnesinin karşılık gelen yöntemlerinden birini kullanabilirsiniz. SetText yöntemini kullanarak şu şekilde metin ekleyebilirsiniz:

dataPackage.SetText("Hello World!");

Son adım, statik SetContent yöntemini çağırarak DataPackage'ı panoya eklemektir.

Clipboard.SetContent(dataPackage);

Yapıştır

Panonun içeriğini almak için statik GetContent yöntemini çağırın. Bu yöntem, içeriği içeren bir DataPackageView döndürür. Bu nesne, içeriğinin salt okunur olması dışında datapackage nesnesiyle neredeyse aynıdır. Bu nesneyle, hangi biçimlerin kullanılabilir olduğunu belirlemek için AvailableFormats veya Contains yöntemini kullanabilirsiniz. Ardından, verileri almak için ilgili DataPackageView yöntemini çağırabilirsiniz.

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;
    }
}

Panoya yapılan değişiklikleri izleme

Kopyalama ve yapıştırma komutlarına ek olarak, pano değişikliklerini de izlemek isteyebilirsiniz. Panonun ContentChanged olayını işleyerek bunu yapın.

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;
    }
}