C# winfrom 窗体动态添加图片出现的问题之(imageList1)丢你雷姆

我像往常一样接到了一个头部菜单的需求 这次的菜单需要加上图片

我首先尝试了用按钮 面板 最后选定了用 PictureBox控件 至于理由有很多

按钮自带的Hover事件让我头疼不已 甚至想骂人

不多逼逼直接看这里

一开始我用的是

imageList1

存照片到这里 然后出问题了 他的图像位深度会让我都是图片失真
用法如下

this.imageList1.Images[数组下标或xx.png];

一开始我们以为是图片的问题,然后陪着美工调试了一个上午
后来美工调不动了我开始尝试其他方法

 var btn = new PictureBox
 {
     Image = 项目名称.Properties.资源文件夹.图片前缀,
 };

这种方法不会导致图片失真,载入的文件为 Bitmap
或者用一种比较土的解决方式

Image.FromFile 这种方式加载图片 因为只支持绝对路径所以需要先获取.exe绝对路径替换相对的文件资源路径拼接对应的img

string @str = this.GetType().Assembly.Location.Replace("xx.exe", @"Resources\");
btn.Image = Image.FromFile(@str + "cy.png");

因为是权限菜单需要动态生成 直接给pIc添加图片不会出现失真现象

见到了很多驴唇不对马嘴的回答比如
1.BackgroundImageLayout = ImageLayout.Zoom,
2.SizeMode = PictureBoxSizeMode.Zoom
3.你放大了是肯定要失真的 没法解决
4. ,,,,

你可能感兴趣的:(那些年我们遇见的沙雕bug,C#)