前言
最近的項目需要將 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工具打開就不會出現此現象。