前言
最近的项目需要将 picturebox 显示网络图片的小功能完成,不想用绝对路径取本地文件里的图片,因为将来要发布给用户的话让用户自己配置会很麻烦的,索性将路径设置成相对路径,将图片放在自己的项目里。那么问题来了,如何用 picturebox 根据相对路径取出要显示的图片呢?
C#最常使用的相对路径是从当前程序所在路径开始相对寻径,找到要找的路径,即以下两种最简单的方式:
1. 程序根目录.(即exe程序所在路径)
//下面两个路径是等价的,都是exe程序所在路径(通常是bin\Debug\下)的Internet文件夹下的you.jpg图片
string Path1 = @".\Internet\you.jpg";
string Path2 = @"Internet\you.jpg";
2. 上级目录..
string Path3 = @"..\Internet\you.jpg"; //程序根目录的上级目录(通常是bin\下)的Internet文件夹下的you.jpg图片
string Path4 = @"..\..\Internet\you.jpg"; //程序根目录的上两级目录(通常是程序名\下)的Internet文件夹下的you.jpg图片
3. picturebox 取出对应的图片
我是放在 bin\Debug下面里面了,所有用的是第一个相对路径的方法。
picInternet.Image = Image.FromFile(@".\Internet\you.png");
显示图片成功。
4 .顺便记下 Picturebox 控件的小技巧
4.1 使加载的图片自使用控件尺寸
分别对pictureBox控件设置BackGroundImageLayout=Stretch,SizeMode=StretchImage
4.2 使Picturebox 透明
picturebox的backColor属性设置成Color.Transparent
5.安利一下下载小图标 icon 好的网址
阿里巴巴的矢量图标库 http://www.iconfont.cn。
6.遇到的小坑
代码虽少,但也有坑,下载完阿里的矢量图标之后,一般的小图标是没有颜色背景的,但是你要改成 jpg 格式或者用 windows 自带的那个画图工具打开编辑之后就会自动添加白色背景。那这样就很坑了。
解决方法:
用 windows 自带的画图3D工具打开就不会出现此现象。