Delen via


Kopiëren en plakken

Kopiëren en plakken is een fundamentele manier voor gebruikers om gegevens uit te wisselen tussen apps of binnen een app. In dit artikel leest u hoe u kopiëren en plakken in WinUI-apps implementeert met behulp van de Klembord-API's. U leert hoe u gegevens kopieert, knipt en plakt, klembordwijzigingen bijhoudt en de klasse DataPackage gebruikt om verschillende gegevensindelingen te verwerken.

Opmerking

U kunt deze API's ook in andere bureaublad-apps gebruiken via Windows Runtime (WinRT)-API's. Zie Call Windows Runtime API's in desktop-apps voor meer informatie.

Controleer op ingebouwde klembordondersteuning

In veel gevallen hoeft u geen code te schrijven om klembordbewerkingen te ondersteunen. Veel van de standaardbesturingselementen voor XAML die u kunt gebruiken om apps te maken, bieden al ondersteuning voor klembordbewerkingen.

Klaarzetten

Neem eerst de Windows.ApplicationModel.DataTransfer naamruimte op in uw app. Voeg vervolgens een exemplaar van het object DataPackage toe. Dit object bevat zowel de gegevens die de gebruiker wil kopiëren als alle eigenschappen (zoals een beschrijving) die u wilt opnemen.

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

Kopiëren en knippen

Kopiëren en knippen (ook wel verplaatsen genoemd) werken bijna precies hetzelfde. Kies welke bewerking u wilt gebruiken met behulp van de eigenschap RequestedOperation .

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

De gekopieerde inhoud instellen

Vervolgens kunt u de gegevens die een gebruiker heeft geselecteerd toevoegen aan het object DataPackage. Als deze gegevens worden ondersteund door de klasse DataPackage , kunt u een van de bijbehorende methoden van het DataPackage-object gebruiken. U kunt als volgt tekst toevoegen met behulp van de methode SetText :

dataPackage.SetText("Hello World!");

De laatste stap bestaat uit het toevoegen van de DataPackage aan het klembord door de methode static SetContent aan te roepen.

Clipboard.SetContent(dataPackage);

Plakken

Als u de inhoud van het Klembord wilt ophalen, roept u de statische GetContent-methode aan. Met deze methode wordt een DataPackageView geretourneerd die de inhoud bevat. Dit object is bijna identiek aan een DataPackage object, behalve dat de inhoud alleen-lezen is. Met dat object kunt u de methode AvailableFormats of Contains gebruiken om te bepalen welke indelingen beschikbaar zijn. Vervolgens kunt u de bijbehorende methode DataPackageView aanroepen om de gegevens op te halen.

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

Wijzigingen in het Klembord bijhouden

Naast kopieer- en plakopdrachten kunt u ook de wijzigingen in het klembord bijhouden. Doe dit door het ContentChanged-evenement van het klembord te verwerken.

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