Dela via


Kopiera och klistra in

Kopiera och klistra in är ett grundläggande sätt för användare att utbyta data mellan appar eller i en app. Den här artikeln visar hur du implementerar kopiera och klistra in WinUI-appar med hjälp av Urklipps-API:er. Du får lära dig hur du kopierar, klipp ut och klistrar in data, spårar ändringar i Urklipp och använder klassen DataPackage för att hantera olika dataformat.

Anmärkning

Du kan också använda dessa API:er i andra skrivbordsappar via api:er för Windows Runtime (WinRT). Mer information finns i Använd Windows Runtime-API:er i skrivbordsappar.

Kontrollera inbyggt stöd för urklipp

I många fall behöver du inte skriva kod för att stödja urklippsåtgärder. Många av de XAML-standardkontroller som du kan använda för att skapa appar stöder redan Urklippsåtgärder.

Kom igång

Inkludera först Windows.ApplicationModel.DataTransfer namnrymd i din app. Lägg sedan till en instans av objektet DataPackage. Det här objektet innehåller både de data som användaren vill kopiera och eventuella egenskaper (till exempel en beskrivning) som du vill inkludera.

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

Kopiera och klipp ut

Kopiera och klipp ut (kallas även flytta) fungerar nästan exakt likadant. Välj vilken åtgärd du vill använda med egenskapen RequestedOperation .

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

Ange det kopierade innehållet

Sedan kan du lägga till de data som en användare har valt i objektet DataPackage. Om dessa data stöds av klassen DataPackage kan du använda någon av motsvarande metoder för DataPackage-objektet . Så här lägger du till text med metoden SetText :

dataPackage.SetText("Hello World!");

Det sista steget är att lägga till metoden DataPackage i Urklipp genom att anropa metoden static SetContent.

Clipboard.SetContent(dataPackage);

Klistra

Om du vill hämta innehållet i Urklipp anropar du metoden static GetContent . Den här metoden returnerar en DataPackageView som innehåller innehållet. Det här objektet är nästan identiskt med ett DataPackage objekt, förutom att innehållet är skrivskyddat. Med det objektet kan du använda metoden AvailableFormats eller Contains för att identifiera vilka format som är tillgängliga. Sedan kan du anropa motsvarande metod DataPackageView för att hämta data.

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

Spåra ändringar i Urklipp

Förutom att kopiera och klistra in kommandon kanske du också vill spåra ändringar i Urklipp. Gör detta genom att hantera ContentChanged-händelsen i urklipp.

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