如何在剪贴板上放置图像?

时间:2013-06-06 14:02:33

标签: c# .net winforms clipboard

我正在使用WinForms以及ChartFX的WinForms版本,并尝试将图表转换为图元文件并将其放在剪贴板中。我已经在下面的代码中正确创建了Metafile,但是当我在应用程序中复制并尝试粘贴到另一个应用程序时,它是不成功的。

using (var memoryStream = new MemoryStream())
{
    chart1.Export(FileFormat.Metafile, memoryStream);
    memoryStream.Position = 0;

    var metaFileImage = Image.FromStream(memoryStream);

    var dataObj = new DataObject();
    dataObj.SetData(DataFormats.EnhancedMetafile, metaFileImage);

    Clipboard.SetDataObject(dataObj);
}

如何正确将图元文件复制到剪贴板?我也尝试过Clipboard.SetImage(metaFileImage);将其转换为位图。我甚至尝试过Clipboard.SetData(metaFileImage.GetType()。FullName,metaFileImage);但它和原始代码一样吗?

令人讨厌的是,您可以从ChartFX的工具栏中执行此操作,但它们不会公开任何命令,因此当用户按Ctrl + C时我无法调用它。

1 个答案:

答案 0 :(得分:3)

也许这解释了你的情况发生了什么:

http://support.microsoft.com/kb/323530