c# - 如何将图像和文本作为一个对象复制到剪贴板?

标签 c# .net clipboard copy-paste

我正在尝试将文件中的图像和文件中的文本复制到剪贴板。我的意图是打开一个 word 文档或一个 outlook 电子邮件,并在一个标准粘贴命令(例如 CTRL-V)中粘贴文本和图像。我可以很容易地分别完成这两项工作,但在一次操作中同时完成这两项工作似乎行不通。

这就是我如何让这两个作为单独的操作工作(当然只有相关的代码行,删除了 try/catch 等):

将图像添加到剪贴板:

...

Bitmap imageToAdd = new Bitmap(imageFilePath);
Clipboard.SetImage(imageToAdd);

...

将文本添加到剪贴板:

...

StreamReader rdr = new StreamReader(textFilePath);
string text = rdr.ReadToEnd();

Clipboard.SetText(text);

...

我使用的是 c# 和 .net 2.0 框架,目标是 Windows XP(不久的将来可能是 Vista)。

TIA

最佳答案

您可以使用 RTF,它可以结合文本和图形。请注意,您可以在剪贴板上同时拥有 CF_BITMAP 和 CF_TEXT。但这没有用。当你粘贴到记事本时你会得到文本,当你粘贴到画图时你会得到位图,大多数其他应用程序会选择一个或另一个,但不会同时选择两者。所以它只是学术性的。有点整洁,就像《星际迷航》中的运输机故障一样整洁。但也很乱。

关于c# - 如何将图像和文本作为一个对象复制到剪贴板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/285042/

相关文章:

c# - 是否可以让 WPF 应用程序打印控制台输出?

c# - 当属性不为空时使用 FluentValidation 检查电子邮件有效性

javascript - 类型错误 : Failed to construct 'ClipboardItem' : Failed to convert value to 'Blob'

javafx - 从 JavaFX DragAndDrop 剪贴板访问自定义对象的属性

c# - 在 Excel 中使用剪贴板复制粘贴(VSTO 代码)会卡住其他 Microsoft Office 应用程序

c# - 当前上下文中不存在名称 'ConfigurationManager'

c# - Windows 键的 SendKey 是什么

c# - 抽象类或接口(interface)。哪种方式是正确的?

c# - 问题为元素 'ImageParameters' 不能包含子元素 'ImageParameter'

c# - 为什么要为类编写扩展方法而不是直接更改实现?