Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Kopiowanie i wklejanie to podstawowy sposób wymiany danych między aplikacjami lub w aplikacji. W tym artykule pokazano, jak zaimplementować kopiowanie i wklejanie w aplikacjach WinUI przy użyciu interfejsów API schowka. Dowiesz się, jak kopiować, wycinać i wklejać dane, jak śledzić zmiany schowka i używać klasy DataPackage do obsługi różnych formatów danych.
Uwaga / Notatka
Można również używać tych interfejsów API w innych aplikacjach desktopowych za pośrednictwem interfejsów API Windows Runtime (WinRT). Aby uzyskać więcej informacji, zobacz wywoływanie interfejsów API Windows Runtime w aplikacjach klasycznych.
Sprawdź, czy jest obsługa wbudowanego schowka
W wielu przypadkach nie trzeba pisać kodu w celu obsługi operacji schowka. Wiele domyślnych kontrolek XAML, których można używać do tworzenia aplikacji, już obsługuje operacje schowka.
Rozpocznij konfigurację
Najpierw uwzględnij przestrzeń nazw Windows.ApplicationModel.DataTransfer w aplikacji. Następnie dodaj wystąpienie obiektu DataPackage. Ten obiekt zawiera zarówno dane, które użytkownik chce skopiować, jak i wszelkie właściwości (takie jak opis), które chcesz uwzględnić.
Kopiowanie i wycinanie
Kopiowanie i wycinanie (nazywane również przenoszeniem) działa prawie dokładnie tak samo. Wybierz żądaną operację przy użyciu właściwości RequestedOperation .
// copy
dataPackage.RequestedOperation = DataPackageOperation.Copy;
// or cut
dataPackage.RequestedOperation = DataPackageOperation.Move;
Ustaw skopiowaną zawartość
Następnie możesz dodać dane wybrane przez użytkownika do obiektu DataPackage. Jeśli te dane są obsługiwane przez klasę DataPackage , możesz użyć jednej z odpowiednich metod obiektu DataPackage . Poniżej przedstawiono sposób dodawania tekstu przy użyciu metody SetText :
Ostatnim krokiem jest dodanie DataPackage do schowka przez wywołanie metody static SetContent.
Wklej
Aby pobrać treść schowka, wywołaj statyczną metodę GetContent. Ta metoda zwraca DataPackageView który zawiera zawartość. Ten obiekt jest prawie identyczny z obiektem DataPackage z tą różnicą, że jego zawartość jest tylko do odczytu. Za pomocą tego obiektu można użyć metody AvailableFormats lub Contains, aby zidentyfikować dostępne formaty. Następnie możesz wywołać odpowiednią metodę DataPackageView w celu pobrania danych.
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;
}
}
Śledź zmiany w schowku
Oprócz kopiowania i wklejania poleceń możesz również śledzić zmiany schowka. Zrób to, obsługując zdarzenie ContentChanged schowka.
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;
}
}