如何从较小的组件图像构建C#ImageList图像?
时间:2020-03-06 14:23:28 来源:igfitidea点击:
我想为CWinForms TreeList控件制作状态图标。状态是其他状态的组合(例如,用户节点可能处于非活动状态或者被禁止,或者处于非活动状态并被禁止),状态图标由不重叠的较小字形组成。
如果可以避免的话,我真的很想避免必须手动生成状态图标的所有可能排列。
是否可以创建可用于以编程方式生成ImageList的图像列表(或者仅一堆位图资源等)?
我在四处逛逛System.Drawing类,没有什么让我兴奋。另外,我还停留在.Net 2.0上。
解决方案
Bitmap image1 = ...
Bitmap image2 = ...
Bitmap combined = new Bitmap(image1.Width, image1.Height);
using (Graphics g = Graphics.FromImage(combined)) {
g.DrawImage(image1, new Point(0, 0));
g.DrawImage(image2, new Point(0, 0);
}
imageList.Add(combined);
只需使用ImageList中的Images.Add添加单个图像即可。因此,类似:
Image img = Image.FromStream( /*get stream from resources*/ ); ImageList1.Images.Add( img );

