Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come supportare la funzionalità di copia e incolla nelle app UWP (Universal Windows Platform) usando gli Appunti. Copiare e incollare è il modo classico per scambiare dati tra app o all'interno di un'app e quasi tutte le app possono supportare le operazioni degli Appunti in qualche modo. Per esempi di codice completi che illustrano diversi scenari di copia e incolla, vedere l'esempio della clipboard .
Verificare il supporto incorporato degli Appunti
In molti casi, non è necessario scrivere codice per supportare le operazioni degli Appunti. Molti dei controlli XAML di default che puoi usare per creare app supportano già le operazioni sugli Appunti.
Preparati
In primo luogo, includere lo spazio dei nomi Windows.ApplicationModel.DataTransfer nell'app. Quindi, aggiungere un'istanza dell'oggetto DataPackage. Questo oggetto contiene sia i dati che l'utente desidera copiare e qualsiasi proprietà (ad esempio una descrizione) che si desidera includere.
DataPackage dataPackage = new DataPackage();
Copia e taglia
Copiare e tagliare (detto anche spostare) funzionano quasi esattamente allo stesso modo. Scegli quale operazione desideri utilizzando la proprietà RequestedOperation.
// copy
dataPackage.RequestedOperation = DataPackageOperation.Copy;
// or cut
dataPackage.RequestedOperation = DataPackageOperation.Move;
Impostare il contenuto copiato
Successivamente, è possibile aggiungere i dati selezionati da un utente all'oggetto DataPackage. Se questi dati sono supportati dalla classe DataPackage , è possibile utilizzare uno dei metodi corrispondenti dell'oggetto DataPackage . Ecco come aggiungere testo usando il metodo SetText:
dataPackage.SetText("Hello World!");
L'ultimo passaggio consiste nell'aggiungere il DataPackage agli Appunti chiamando il metodo statico SetContent.
Clipboard.SetContent(dataPackage);
Incolla
Per ottenere il contenuto degli Appunti, chiamare il metodo statico GetContent. Questo metodo restituisce un oggetto DataPackageView che contiene il contenuto. Questo oggetto è quasi identico a un oggetto DataPackage , ad eccezione del fatto che il relativo contenuto è di sola lettura. Con questo oggetto, è possibile usare il AvailableFormats o il metodo Contains per identificare i formati disponibili. È quindi possibile chiamare il metodo DataPackageView corrispondente
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;
}
}
Tenere traccia delle modifiche apportate agli appunti
Oltre ai comandi di copia e incolla, potresti anche voler tenere traccia delle modifiche degli appunti. Per fare ciò, gestire l'evento ContentChanged
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;
}
}