【问题标题】:RichTextbox - how change background of image Ive pasteRichTextbox - 如何更改我粘贴的图像背景
【发布时间】:2019-04-03 22:55:48
【问题描述】:

请参见下面的示例 - 我尝试了所有方法(包括编辑图像并将背景颜色从透明更改为白色),但静止图像背景显示为灰色。

有人知道怎么解决吗?

-- 编辑--

这是我的代码:

Clipboard.SetImage(Properties.Resources.smile);
richTextBox1.Paste();

我可以看到其他人有类似的问题: Image background after insert into RichTextBox

我也试过那里提到的解决方案

【问题讨论】:

  • Ive tried everything 你知道你必须向我们展示你尝试过的代码。
  • 您可以: 将位图转换为 WMF 图元文件;从剪贴板中获取图像,使用 RichTextBox 背景颜色作为位图画布颜色自己绘制并重新粘贴;使用 WPF RichTextBox。
  • 我忘了说如果你直接获取Bitmap,Image透明度会丢失。您需要获取DataFormats.Dib。当然,.Net 图形类(作为本机 WMF 格式)不直接支持。
  • 包括。编辑图像并将背景颜色从透明更改为白色不可能!位图中没有“背景”的概念。像素是像素,白色的将是白色的。所以你是在做其他事情这是错误的!
  • 我添加了更多信息

标签: c# .net winforms richtextbox


【解决方案1】:

问题不是你的图片,是richTextBox不能处理图片的透明度。所以你应该考虑使用另一个控件或者使背景颜色与richTextBox相同,希望对你有帮助

【讨论】:

    【解决方案2】:

    我刚刚通过将 *.png 转换为 *.jpg 解决了这个问题(bmp 和 tiff 也可以)

    非常感谢大家的帮助。 我认为问题在于图像透明背景,这就是转换有帮助的原因。 就我而言,我不需要透明度,只是想避免看到周围的框架

    编辑

    我在这里找到了解决方案: https://stackoverflow.com/a/27318979/77273

    (按指定替换透明色)

    我现在的新代码如下:

    Clipboard.SetImage( Transparent2Color (Properties.Resources.angry, Color.White)  );
    richTextBox1.Paste();
    

    EDIT-2

    我刚刚发现为什么即使我编辑了图片并在白色上替换了透明背景,也会显示灰色背景.... (这实际上导致我走错了方向)

    • 我刚刚替换了资源中的 img,使用相同的名称
    • 原来 VS 以某种方式“缓存”旧版图片
    • 当我使用其他名称或从资源中删除文件并再次复制时,它开始工作

    希望这对遇到类似问题的人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多