10

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

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

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

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

4

1 回答 1

18

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

您应该使用DataObjectClipboard.SetDataObject()

例子:

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

Clipboard.SetDataObject(dataObj);
于 2013-04-29T19:57:52.757 回答