2011-03-03 75 views
0

我有一个简单的问题。保存png到剪贴板时,我将DataFormat用作什么?添加一个PNG到剪贴板

,对位图工作的一个例子是:

DataObject data = new DataObject(); 
data.SetData(DataFormats.Bitmap, customObject.ToImage(ImageFormat.Bmp)); 
Clipboard.SetDataObject(data); 

我的问题:

DataObject data = new DataObject(); 
data.SetData(DataFormats.**???**, customObject.ToImage(ImageFormat.Png)); 
Clipboard.SetDataObject(data); 
+0

'DataFormats * “只是字符串,你知道的。 – Nyerguds 2017-09-28 09:11:49

回答

5

,您可以注册任何序列化类型与剪贴板提供商:

 Image image = Image.FromFile(@"D:\Documents\Projects\....\myimage.png"); 
     DataFormat format = DataFormats.GetDataFormat(typeof (Image).FullName); 

     IDataObject dataObj = new DataObject(); 
     dataObj.SetData(format.Name, image); 

     Clipboard.SetDataObject(dataObj); 

     IDataObject clipboardObj = Clipboard.GetDataObject(); 
     Image clipboardImage = (Image)clipboardObj.GetData(format.Name); 
+0

+1这是正确的方法。谢谢。 – 2011-03-04 16:00:53

+0

在许多应用程序中,字符串“PNG”被接受为剪贴板图像格式,但它需要一个包含PNG图像字节的“MemoryStream”。 – Nyerguds 2017-09-26 12:36:46