複製和貼上
本文介紹如何使用剪貼簿支援在通用 Windows 平台 (UWP) 應用程式中進行複製和貼上。 複製並貼上是在應用程式之間或在應用程式中交換資料的傳統方式,而且幾乎每個應用程式都可以在某種程度上支援剪貼簿作業。 如需示範數個不同複製和貼上案例的完整程式碼範例,請參閱剪貼簿範例。
檢查內建剪貼簿支援
在許多情況下,您不需要撰寫程式碼來支援剪貼簿作業。 許多可用來建立已經支援剪貼簿作業的應用程式的預設 XAML 控制項。
開始設定
首先,在您的應用程式中包含 Windows.ApplicationModel.DataTransfer 命名空間。 然後,新增 DataPackage 物件的執行個體。 此物件包含使用者想要複製的資料,以及您想要包含的任何屬性 (例如說明)。
DataPackage dataPackage = new DataPackage();
複製和剪下
複製和剪下 (也稱為移動) 的作業方式幾乎完全相同。 使用 RequestedOperation 屬性來選擇您想要的作業。
// copy
dataPackage.RequestedOperation = DataPackageOperation.Copy;
// or cut
dataPackage.RequestedOperation = DataPackageOperation.Move;
設定複製的內容
接下來,您可以將使用者選取的資料新增至 DataPackage 物件。 如果 DataPackage 類別支援此資料,則可以使用 DataPackage 物件的相應方法之一。 以下說明如何使用 SetText 方法新增文字:
dataPackage.SetText("Hello World!");
最後一步是透過呼叫靜態 SetContent 方法將 DataPackage 新增到剪貼簿。
Clipboard.SetContent(dataPackage);
貼上
若要取得剪貼簿的內容,請呼叫靜態 GetContent 方法。 這個方法會傳回包含內容的 DataPackageView。 此物件幾乎與 DataPackage 物件完全相同,不同之處在於其內容是唯讀的。 使用此物件時,您可以使用 AvailableFormats 或 Contains 方法來識別可用的格式。 然後,您可以呼叫對應的 DataPackageView 方法來取得資料。
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;
}
}
追蹤剪貼簿的變更
除了複製和貼上命令之外,您也可以追蹤剪貼簿變更。 處理剪貼簿的 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;
}
}