2011-03-03 68 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