首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# WinForm 將圖片與文字合成後放入系統剪貼板

     編輯:程式設計綜合問答

需求場景

需將一張圖片與一段文字合成為一個複合數據對象,放入剪貼板,以便粘貼到 Word、微信等富文本編輯器中同時顯示圖文。

核心思路:使用 DataObject 設置多種格式

using System.Windows.Forms;
using System.Drawing;

public void SetImageAndTextToClipboard(Image img, string text) {
    DataObject data = new DataObject();
    
    // 設置圖片格式
    data.SetData(DataFormats.Bitmap, true, img);
    
    // 設置純文本格式
    data.SetData(DataFormats.Text, true, text);
    
    // 設置 HTML 格式(可選,支援富文本粘貼)
    string html = $@"<html><body><img src='{ImageToBase64(img)}'><br>{text}</body></html>";
    data.SetData(DataFormats.Html, true, html);
    
    Clipboard.SetDataObject(data, true); // true: 應用退出後仍保留
}

// 輔助:圖片轉 Base64 Data URI
private string ImageToBase64(Image img) {
    using (var ms = new System.IO.MemoryStream()) {
        img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
        byte[] bytes = ms.ToArray();
        return "data:image/png;base64," + Convert.ToBase64String(bytes);
    }
}

關鍵格式說明

格式用途目標應用支援
DataFormats.Bitmap位圖圖片Paint, Word, 微信等
DataFormats.Text純文本所有編輯器
DataFormats.HtmlHTML 片段(含圖片 Data URI)Word, Outlook, 瀏覽器編輯器
DataFormats.Rtf富文本格式Word, WordPad

進階:生成標準 HTML 片段格式

剪貼板 HTML 格式需包含 StartHTML/EndHTML 等標記,參考 MSDN HTML Clipboard Format。簡化版可用 HtmlFragment 類庫生成。

驗證方法

  1. 運行代碼後,打開 Word 執行 Ctrl+V,觀察是否同時出現圖片與文字。
  2. 打開記事本粘貼,應僅出現純文本(驗證多格式共存)。

通過 DataObject 同時設置 Bitmap、Text、HTML 等多種格式,即可實現圖文合成進剪貼板,滿足不同目標應用的粘貼需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved