Freigeben über


Kopieren und Einfügen

In diesem Artikel wird erläutert, wie Sie Kopieren und Einfügen in Universelle Windows-Plattform-Apps (UWP) mithilfe der Zwischenablage unterstützen. Kopieren und Einfügen ist die klassische Methode zum Austausch von Daten zwischen Apps oder in einer App, und nahezu jede App kann Zwischenablageaktionen bis zu einem gewissen Grad unterstützen. Vollständige Codebeispiele, die verschiedene Kopier- und Einfügeszenarien veranschaulichen, finden Sie im Beispiel für die Zwischenablage.

Überprüfen der integrierten Unterstützung der Zwischenablage

In vielen Fällen müssen Sie keinen Code schreiben, um Zwischenablagevorgänge zu unterstützen. Viele der standardmäßigen XAML-Steuerelemente, die Sie zum Erstellen von Apps verwenden können, unterstützen bereits Zwischenablagevorgänge.

Vorbereiten

Schließen Sie zunächst den Windows.ApplicationModel.DataTransfer-Namespace in Ihre App ein. Fügen Sie dann eine Instanz des DataPackage-Objekts hinzu. Dieses Objekt enthält sowohl die Daten, die der Benutzer kopieren möchte, als auch alle Eigenschaften (z. B. eine Beschreibung), die Sie einbeziehen möchten.

DataPackage dataPackage = new DataPackage();

Kopieren und Ausschneiden

Kopieren und Ausschneiden (auch als "Verschieben" bezeichnet) funktionieren fast genauso. Wählen Sie mit der RequestedOperation-Eigenschaft den gewünschten Vorgang aus.

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

Festlegen des kopierten Inhalts

Als Nächstes können Sie die Daten hinzufügen, die ein Benutzer dem DataPackage-Objekt ausgewählt hat. Wenn diese Daten von der DataPackage-Klasse unterstützt werden, können Sie eine der entsprechenden Methoden des DataPackage-Objekts verwenden. So fügen Sie Mithilfe der SetText-Methode Text hinzu:

dataPackage.SetText("Hello World!");

Der letzte Schritt besteht darin, das DataPackage der Zwischenablage hinzuzufügen, indem die statische SetContent-Methode aufgerufen wird.

Clipboard.SetContent(dataPackage);

Einfügen

Rufen Sie zum Abrufen des Inhalts der Zwischenablage die statische GetContent-Methode auf. Diese Methode gibt ein DataPackageView-Objekt zurück, das den Inhalt enthält. Dieses Objekt ist fast identisch mit einem DataPackage-Objekt , mit der Ausnahme, dass der Inhalt schreibgeschützt ist. Mit diesem Objekt können Sie entweder die AvailableFormats oder die Contains-Methode verwenden, um zu ermitteln, welche Formate verfügbar sind. Anschließend können Sie die entsprechende DataPackageView-Methode aufrufen, um die Daten abzurufen.

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

Nachverfolgen von Änderungen an der Zwischenablage

Zusätzlich zu Den Befehlen zum Kopieren und Einfügen können Sie auch Änderungen der Zwischenablage nachverfolgen. Behandeln Sie dazu das ContentChanged-Ereignis der Zwischenablage.

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

Weitere Informationen