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