我正在尝试在richtext框中构建类似树视图的文件列表。
它应该看起来像一个资源管理器树视图。我的代码能够调整图标大小,但缺少透明度(浅灰色背景而不是透明度)。我需要在这里更改什么?图像格式错了吗? 有没有更好的方法将图像添加到richtextbox?
// Get file info
FileInfo f = new FileInfo("myfile.name");
// Get icon for fileinfo
Icon ico = Icon.ExtractAssociatedIcon(f);
// Convert icon to bitmap
Bitmap bm = ico.ToBitmap();
// create new image with desired size
Bitmap img = new Bitmap(16,16,PixelFormat.Frmat32bpRgb);
// Create graphics with desired sized image
Graphics g = Graphics.FormImage(img);
// set interpolation mode
g.InterpolationMode = InterpolationMode.HighQualityBiCubic;
// draw/resize image
g.DrawImage(bm, new Rectangle(0,0,16,16), new Rectangle(0, 0, bm.Width, bm,Height), GraphicalUnit.Pixel);
// Paste to clipboard
Clipboard.SetImage(bm);
// Paste in RichtextBox
rtb.Paste();
示例:
修改
我发现图像是透明的,但使用Clipboard.SetImage()不会将其发布为透明图像。
任何想法为什么以及我可以做些什么来解决它?我是否需要切换到不同的文本框控件?
答案 0 :(得分:2)
我有幸通过图形。
Bitmap b = new Bitmap(pbAssetLoaded.Width, pbAssetLoaded.Height);
using (Graphics g = Graphics.FromImage(b))
{
g.DrawIcon(SystemIcons.Information, 0, 0);
}
这会为Bitmap绘制透明图标。
答案 1 :(得分:0)
尝试
img.MakeTransparent();
合同之后。
请注意,这会将您的PixelFormat更改为Format32bppArgb
。