當我們在電腦上打開一個全是圖片的文件夾的時候,如果在“查看”中選擇的是中等圖標或者大圖標我們就能看到圖片的一個預覽圖。一般都是下面這個樣子的:
現在我們就用C#在Winform應用程序中模擬一下這個功能,在這裡只是演示一下ListView控件和ImageList的簡單使用,如果在實際開發中的應用那遠遠不是這麼簡單的。
打開Visual Studio新建一個Winform應用程序,在設計器中添加一個ListView控件,選擇ListView控件按下F4設置Dock屬性為DockStyle.Fill
在窗體的Load事件中設置一下ListView控件的View屬性為LargeIcon,並實例化一個ImageList對象
ListView控件的View 5種屬性:LargeIcon SmallIcon Details Tile List
LargeIcon 大圖標顯示,在圖標的下邊有一個標籤顯示文字,平時常用應該就是Details了,效果類似於下圖這樣的:
listView1.View = View.LargeIcon;//設置為大圖標顯示
ImageList listImg = new ImageList();//實例化一個ImageList對象
listImg.ImageSize = new System.Drawing.Size(128, 128);//設置image尺寸 最大隻能是256*256
listView1.LargeImageList = listImg;
listImg.ColorDepth = ColorDepth.Depth32Bit;//色深設置為32位,要不然會出現圖片失真
讀取指定的文件夾下的圖片添加到ImageList中
我這是為了簡單演示所以指定了一個固定的路徑,而且圖片類型指定是“JPG”格式。其實可以稍微做一下修改,比如添加一個選擇路徑、獲取多種圖片格式等。
//將指定文件夾下所有JPG格式圖片的路徑獲取到一個string[]中
string[] files = Directory.GetFiles(@"e:\\jpg", "*.jpg");
for (int i = 0; i < files.Length; i++)
{
//按照指定圖片路徑加載圖片到ImageList中
listImg.Images.Add(Image.FromFile(files[i]));
//將圖片名稱設置為ListView控件的items的Name
listView1.Items.Add(Path.GetFileName(files[i]));
//給每個listView的item設置一個對應的imageIndex
listView1.Items[i].ImageIndex = i;
}
最後的顯示效果就是這樣子的:
下面是這個小示例的完整代碼:
private void Form1_Load(object sender, EventArgs e)
{
try
{
listView1.View = View.LargeIcon;
ImageList listImg = new ImageList();
listImg.ImageSize = new System.Drawing.Size(128, 128);
listView1.LargeImageList = listImg;
listImg.ColorDepth = ColorDepth.Depth32Bit;
string[] files = Directory.GetFiles(@"e:\\jpg", "*.jpg");
for (int i = 0; i < files.Length; i++)
{
listImg.Images.Add(Image.FromFile(files[i]));
listView1.Items.Add(Path.GetFileName(files[i]));
listView1.Items[i].ImageIndex = i;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
喜歡我文章的朋友請關注我,我會定期更新的,如有不足或者錯誤的地方歡迎指正,謝謝!
閱讀更多 路馬編程 的文章