如何从 C# 中的剪贴板历史记录中获取所有数据的列表?

How do I get a list of all data from clipboard history in C#?

我想从剪贴板历史中获取所有数据的列表,但找不到枚举器方法。会不会有什么东西是我遗漏的,或者我还能通过什么其他方式做到这一点?我在剪贴板中找不到枚举器方法 class。

var clip = Clipboard.GetDataObject();

foreach (var item in clip)
{
    MessageBox.Show(item);
}

我能够通过从 WinRT API 引用剪贴板 class 到我的 WPF 应用程序来获取剪贴板历史记录。

using Clipboard = Windows.ApplicationModel.DataTransfer.Clipboard;

Task.Run(async () => {
    var items = await Clipboard.GetHistoryItemsAsync();
    foreach (var item in items.Items)
    {
        string data = await item.Content.GetTextAsync();
        MessageBox.Show(data);
    }
});

我还必须将我的目标框架设置为带有 TFM 版本的 .NET 5.0,并且不需要任何 NuGet 包即可工作。您将需要 Microsoft.Windows.SDK.Contracts 早期版本的 .NET 上的 NuGet 包。

<TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>