如何将HTML和文本都复制到剪贴板?

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

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

但只有最后一个格式实际上被放到剪贴板。 在上面的示例中,剪贴板将只包含明文(如Clipboard.GetDataObject().GetFormats() )所示。 如果我换行,剪贴板将只有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);