Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Kopírování a vkládání je základním způsobem, jak uživatelé vyměňovat data mezi aplikacemi nebo v rámci aplikace. V tomto článku se dozvíte, jak implementovat kopírování a vkládání v aplikacích WinUI pomocí API schránky. Naučíte se, jak kopírovat, vyjmout a vložit data, jak sledovat změny schránky a jak používat třídu DataPackage ke zpracování různých formátů dat.
Poznámka:
Tato rozhraní API můžete také použít v jiných desktopových aplikacích prostřednictvím rozhraní API Windows Runtime (WinRT). Další informace najdete v tématu Call Windows Runtime API v desktopových aplikacích.
Kontrola podpory integrované schránky
V mnoha případech nemusíte psát kód pro podporu operací schránky. Mnoho výchozích ovládacích prvků XAML, které můžete použít k vytváření aplikací, již podporuje operace schránky.
Nastavte se
Nejprve zahrňte Windows.ApplicationModel.DataTransfer obor názvů ve vaší aplikaci. Pak přidejte instanci objektu DataPackage. Tento objekt obsahuje data, která chce uživatel zkopírovat, i všechny vlastnosti (například popis), které chcete zahrnout.
Kopírovat a vyjmout
Kopírování a vyjmutí (označované také jako přesunutí) funguje téměř stejně. Zvolte požadovanou operaci pomocí Vlastnosti RequestedOperation .
// copy
dataPackage.RequestedOperation = DataPackageOperation.Copy;
// or cut
dataPackage.RequestedOperation = DataPackageOperation.Move;
Nastavení zkopírovaného obsahu
Dále můžete přidat data, která uživatel vybral, do objektu DataPackage. Pokud jsou tato data podporována DataPackage třídy, můžete použít jednu z odpovídajících metodDataPackage objektu. Tady je postup přidání textu pomocí metody SetText :
Posledním krokem je přidání DataPackage do schránky voláním metody static SetContent.
Vložit
Pokud chcete získat obsah schránky, zavolejte statickou metodu GetContent . Tato metoda vrátí DataPackageView obsahující obsah. Tento objekt je téměř stejný jako objekt DataPackage s tím rozdílem, že jeho obsah je jen pro čtení. S tímto objektem můžete použít Buď AvailableFormats nebo Contains metoda identifikovat, jaké formáty jsou k dispozici. Potom můžete volat odpovídající metodu DataPackageView pro získání dat.
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;
}
}
Sledujte změny ve schránce
Kromě kopírování a vkládání příkazů můžete také chtít sledovat změny schránky. Udělejte to zpracováním události ContentChanged schránky.
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;
}
}
Související obsah
Windows developer