天天看點

C# 擷取剪切(粘貼)闆的内容(圖檔、文字)

Clipboard類、 Clipboard.GetDataObject() 、iData.GetDataPresent()…

DataFormats類型:

Bitmap 指定 Microsoft Windows 位圖資料格式。

CommaSeparatedValue 指定以逗号分隔的值 (CSV) 資料格式。

Dib 指定 device-independent bitmap (DIB) 資料格式。

Dif 指定 Windows 資料交換格式 (DIF) 資料格式。

EnhancedMetafile 指定 Windows 增強型圖元檔案格式。

FileDrop 指定 Windows 檔案放置格式。

Html 指定 HTML 資料格式。

Locale 指定 Windows 區域設定(區域性)資料格式。

MetafilePicture 指定 Windows 圖元檔案圖檔資料格式。

OemText 指定标準 Windows OEM 文本資料格式。

Palette 指定 Windows 調色闆資料格式。

PenData 指定 Windows 鋼筆資料格式。

Riff 指定 Resource Interchange File Format (RIFF) 音頻資料格式。

Rtf 指定 Rich Text Format (RTF) 資料格式。

Serializable 指定封裝任何類型的可序列化資料對象的資料格式。

StringFormat 指定 common language runtime (CLR) 字元串類資料格式。

SymbolicLink 指定 Windows 符号連結資料格式。

Text 指定 ANSI 文本資料格式。

Tiff 指定 Tagged Image File Format (TIFF) 資料格式。

UnicodeText 指定 Unicode 文本資料格式。

WaveAudio 指定波形音頻資料格式。

Xaml 指定 Extensible Application Markup Language (XAML) 資料格式。

XamlPackage 指定 Extensible Application Markup Language (XAML) 包資料格式。

擷取圖檔:

IDataObject iData = Clipboard.GetDataObject(); 
            if (iData.GetDataPresent(DataFormats.MetafilePict))
            {
                var img = Clipboard.GetImage();
                picBox.Tag = Guid.NewGuid();
                picBox.Image = img; 
            }
            else if (iData.GetDataPresent(DataFormats.FileDrop))
            {
                var files = Clipboard.GetFileDropList();
                if (files.Count == 0) { return; }
                picBox.Tag = Guid.NewGuid();
                picBox.Image = Image.FromFile(files[0]); 
            }

            else if (iData.GetDataPresent(DataFormats.Text))
            {
                var path = (String)iData.GetData(DataFormats.Text); 
                var chars = Path.GetInvalidPathChars();
                if (path.IndexOfAny(chars)>=0) {
                    F.error("路徑中包含非法字元!");
                    return;
                }
               if (System.IO.File.Exists(path))
                {
                    var name = Path.GetFileNameWithoutExtension(path);
                    var extension = path.Substring(path.LastIndexOf("."));
                    string imgType = ".png|.jpg|.jpeg";
                    if (imgType.Contains(extension.ToLower()))
                    {
                        picBox.Image = Image.FromFile(path);
                        picBox.Tag = Guid.NewGuid();
                        IsChanged = true;
                    }
                    else {
                        F.error("格式錯誤!");
                    }
                  
                }
                else {
                    F.error("檔案不存在!");
                }
            }



           

繼續閱讀