簡體   English   中英

從文件網站和桌面復制文件時,C#Clipboard.ContainsImage()的工作方式有所不同

[英]C# Clipboard.ContainsImage() is working differently while copying file from file website and from desktop

我正在研究一件有趣的事情。 我想在C#程序中從剪貼板獲取圖像。

代碼示例:

[STAThread]
public Image GetClipboardImage()
{
    MessageBox.Show("try to get image");
    Image returnImage = null;
    if (Clipboard.ContainsImage())
    {
        MessageBox.Show("getting image");
        returnImage = Clipboard.GetImage();
    }
    return returnImage;
}

當我嘗試從任何網站獲取復制到剪貼板的圖像時,上面的代碼效果很好。 但是,當我從計算機中復制圖像時(例如,我的意思是台式機),它不起作用。 Clipboard.ContainsImage()在第二種情況下返回false

從網絡復制和從桌面復制之間還有另一個區別:在第一種情況下,我無法將圖像從剪貼板粘貼到計算機上的文件夾中。 當然在第二種情況下可以做到。 在第二種情況下,似乎有一個真實圖像和一個包含該圖像的文件。 但我不確定是否可以。

那么,我遇到的問題是什么?如何解決?

下一段代碼演示了一個合適的解決方案

IDataObject myDataObject = Clipboard.GetDataObject();
string[] files = (string[])myDataObject.GetData(DataFormats.FileDrop);
MessageBox.Show(files[0]);

您將顯示Massagebox,其中包含您之前復制到剪貼板的文件的完整路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM