如何将HTML和文本同时复制到剪贴板

本文关键字:复制 剪贴板 文本 HTML | 更新日期: 2023-09-27 18:11:29

我试图在剪贴板中同时放入HTML和纯文本,以便能够使用HTML的编辑器可以粘贴HTML,而其他编辑器可以使用纯文本。

Clipboard.SetData(DataFormats.Html, htmlWithHeader);
Clipboard.SetData(DataFormats.UnicodeText, plainText);

但是实际上只有最后一种格式被放到剪贴板上。在上面的示例中,剪贴板将只包含明文(如Clipboard.GetDataObject().GetFormats()所示)。如果我交换行,剪贴板将只有HTML格式。

如何同时将两种格式放入剪贴板?

如何将HTML和文本同时复制到剪贴板

不能同时使用Clipboard.SetData设置HTML和纯文本。第二次调用SetData将清除第一次调用时设置的剪贴板内容,并存储新数据。

你应该使用DataObject和Clipboard.SetDataObject()。

的例子:

DataObject dataObj = new DataObject();
dataObj.SetData(DataFormats.Html, htmlWithHeader);
dataObj.SetData(DataFormats.Text, plainText);
Clipboard.SetDataObject(dataObj);