我正在寻找以编程方式将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