我正在尋找以編程方式將base64字符串轉換爲圖像,然後將其插入到richTextBox中。無法將圖像從剪貼板粘貼到RichTextBox
現在我將字符串加載到一個流中並將其轉換爲一個Image。然後我將它加載到剪貼板上並嘗試粘貼。但是,當我執行代碼時,沒有任何內容粘貼到richTextBox中。運行代碼後,圖像在我的剪貼板中正確設置,我可以手動將其粘貼到richTextBox - 它似乎不能以編程方式工作。
這裏是我的代碼:
byte[] img_bytes = Convert.FromBase64String(imgStr);
using (var ms = new MemoryStream(img_bytes, 0, img_bytes.Length))
{
Image img = Image.FromStream(ms, true);
Bitmap imgb = (Bitmap)Bitmap.FromStream(ms);
Clipboard.SetDataObject(img);
Console.WriteLine(Clipboard.ContainsImage()); // Prints True
richTextBox1.Paste(DataFormats.GetFormat(DataFormats.Bitmap));
Console.WriteLine(richTextBox1.CanPaste(DataFormats.GetFormat(DataFormats.Bitmap))); // Prints True
richTextBox1.Text += "\n";
}
更新:看來,粘貼圖像後設置文本字段刪除圖像。我想現在的問題是,我怎麼既有圖像又有文字?
您可以嘗試首先粘貼非流式位圖嗎? 'richTextBox1.Paste(DataFormats.GetFormat(DataFormats.Bitmap));'強烈類似於[msdn代碼示例](https://msdn.microsoft.com/de-de/library/23kah9ca(v = vs.110)。 aspx)所以我懷疑是有問題,但也許你的位圖不能以任何理由工作 – Kartoffel
我似乎有同樣的問題 - 我從文件中加載了一個PNG文件,但它在執行程序時無法粘貼。 PNG不會複製到我的剪貼板成功,我可以手動將其粘貼到richTextBox雖然:( – user2884505
你可以嘗試重現從msdn的整個代碼我以前鏈接過嗎?也許問題是其他地方... – Kartoffel