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 implementeert in WinUI- en UWP-apps (Universal Windows Platform) met behulp van de Klembord-API's. U leert hoe u gegevens kopieert, knipt en plakt, klembordwijzigingen bijhoudt en de DataPackage-klasse gebruikt om verschillende gegevensindelingen te verwerken.

Opmerking

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

Zie het VOORBEELD van het UWP-klembord op GitHub voor volledige codevoorbeelden die verschillende scenario's voor kopiëren en plakken demonstreren.

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 naamruimte Windows.ApplicationModel.DataTransfer op in uw app. Voeg vervolgens een exemplaar van het DataPackage-object 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 DataPackage-object . 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 ervan het kenmerk Alleen-lezen heeft. Met dat object kunt u de methode AvailableFormats of Contains gebruiken om te bepalen welke indelingen beschikbaar zijn. Vervolgens kunt u de bijbehorende DataPackageView-methode 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;
    }
}